Search

Longest Common Prefix

문제 설명 : 제공된 문자열 중 가장 긴 Prefix를 반환
풀이 방법
각 문자의 글자를 확인하여 동일한지 확인한다.
시간복잡도 : O(N2)O(N^2) → 최악의 경우
성공 코드
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: result = "" # 각 문자열의 글자를 확인 (세로로 확인하는 법) for item in zip(*strs): if len(set(item)) == 1: result += item[0] else: return result return result
Python
복사
성공 코드
sort를 사용하게되면, 자연스럽게 prefix가 동일한 문자끼리 가까워진다.
이를 사용하여, 문자열 목록을 정렬 후 가장 처음과 마지막 문자만 비교하여 처리하는 방법이다.
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: result = "" strs.sort() if len(strs) == 1: return strs[0] # 정렬된 문자열에서 처음과 가장 마지막만 확인하여, 중간에 어느정도 유사한 문자열은 모두 제외 for ch1, ch2 in zip(strs[0], strs[-1]): if ch1 == ch2: result += ch1 else: return result return result
Python
복사