문제 : 소문자로 쓰인 문자열들로 구성된 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 를 이용하면 더 짧게 풀이도 가능할 것 같은데 좀 더 생각해봐야겠다.
출처 : leetcode.com/problems/longest-common-prefix/
'프로그래밍' 카테고리의 다른 글
leetcode 5. Longest Palindromic Substring 풀이 (0) | 2021.04.13 |
---|---|
leetcode 3. Longest Substring Without Repeating Characters 풀이 (0) | 2021.04.08 |
leetcode 11. Container With Most Water 풀이 (0) | 2021.04.01 |
leetcode 287. Find the Duplicate Number 풀이 (0) | 2021.04.01 |
leetcode 448. Find All Numbers Disappeared in an Array 풀이 (0) | 2021.03.31 |