면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
[LeetCode] 14. 가장 긴 공통 접두어 문제 해결 보고서 (파이썬)
주제 주소 : https://leetcode.com/problems/longest-common-prefix/
제목 설명
문자열 배열 사이 가장 긴 공통 접두어 문자열을 찾는 함수를 작성합니다.
공통 접두사가없는 경우 빈 문자열 ""를 반환합니다.
예 1 :
Input: ["flower","flow","flight"]
Output: "fl"
예 2 :
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
해결 방법 1 : 정렬 첫 번째 문자열을 비교
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
strs.sort()
size = min(len(strs[0]), len(strs[-1]))
i = 0
while i < size and strs[0][i] == strs[-1][i]:
i += 1
return strs[0][:i]
해결 방법 2 : 솔루션 폭력, 순회 문자열의 최소 길이를 기준으로
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs or not min([len(str) for str in strs]):
return ""
for i in range(min([len(str) for str in strs])):
pre = strs[0][i]
if not all(str[i] == pre for str in strs):
i -= 1
break
return strs[0][:i+1]
분 보충 교재 사용
pre = min(strs, key = len) # 求最小长度字符串