[LeetCode] 14. 가장 긴 공통 접두어 문제 해결 보고서 (파이썬)

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/ttinch/article/details/102555132

주제 주소 : 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) # 求最小长度字符串

추천

출처blog.csdn.net/ttinch/article/details/102555132