내코드
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
res = ""
n_strs = len(strs)
cur_point = 0
min_len = min([len(s) for s in strs])
while cur_point < min_len:
sub = [s[cur_point] for s in strs]
if len(set(sub)) == 1:
res += sub[0]
else:
break
cur_point +=1
return res
https://youtu.be/0sWShKIJoo4?si=XvcOnKeTitIM6Uip
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
res = "" # 결과로 반환할 가장 긴 공통 접두사를 저장할 변수 초기화
# strs[0]의 각 문자를 기준으로 다른 문자열들과 비교
for i in range(len(strs[0])): # 첫 번째 문자열의 길이만큼 반복
for s in strs: # 모든 문자열을 하나씩 검사
# 조건 1: 현재 검사 중인 문자의 인덱스(i)가 문자열의 길이와 같으면(범위를 벗어나면)
# 조건 2: 현재 문자열(s)의 i번째 문자와 strs[0]의 i번째 문자가 다르면
if i == len(s) or s[i] != strs[0][i]:
return res # 지금까지의 공통 접두사를 반환
# 모든 문자열에서 strs[0][i]와 같은 문자가 확인되었으면, 해당 문자를 결과에 추가
res += strs[0][i]
return res # 반복문이 끝난 후, 최종 공통 접두사를 반환
그러나, 리스트에서 첫번째 문자가 가장 짧다는 보장이 없으므로 GPT 코드가 더 맞는듯 함
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return "" # 문자열 리스트가 비어 있으면 빈 문자열 반환
# 가장 짧은 문자열 찾기
shortest = min(strs, key=len)
# 가장 짧은 문자열을 기준으로 비교
for i in range(len(shortest)):
for s in strs:
if s[i] != shortest[i]: # 일치하지 않는 문자가 발견되면
return shortest[:i] # 현재까지의 공통 접두사를 반환
return shortest # 가장 짧은 문자열 자체가 공통 접두사일 경우 반환
'LeetCode > Top Interview 150' 카테고리의 다른 글
12. Integer to Roman (0) | 2024.11.28 |
---|---|
42. Trapping Rain Water (0) | 2024.11.28 |
58. Length of Last Word (0) | 2024.11.27 |
13. Roman to Integer (0) | 2024.11.27 |
135. Candy (0) | 2024.11.27 |