프로그래밍
leetcode 14. Longest Common Prefix 풀이
by 웃즐
2021. 4. 7.
문제 : 소문자로 쓰인 문자열들로 구성된 list에서 가장 긴 공통의 접두어를 구해서 반환하라. 없을 시에는 "" 공백 반환
Follow up : -
아이디어 : list가 비어있을 시에는 공백을 반환하고, list를 문자열의 길이 순으로 정렬한 후 가장 첫 번째 요소 (길이가 가장 짧은) 를 기준으로 삼아서 list를 순회하며 공통되지 않은 요소 발견 시 기준 문자열을 수정한다.
코드 :
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
strs.sort(key=lambda x: len(x))
if not strs:
return ""
ss = strs[0]
n = len(ss)
for st in strs:
i = 0
while i < n:
if ss[i] != st[i]:
if i == 0:
return ""
ss = ss[0:i]
n = len(ss)
continue
else:
i += 1
return ss
학습 포인트 : lambda 를 이용하면 더 짧게 풀이도 가능할 것 같은데 좀 더 생각해봐야겠다.