•
문제 링크 : leetcode.com
•
문제 설명 : 제공된 단어로 문자 목록을 처음부터 순서대로 사용 시, s 문자열을 만들 수 있는지 확인
•
풀이 방법
◦
startswith 를 사용하는 방법으로는 통과가 어려웠다.
▪
s가 포함되는 것을 확인하는게 아닌, 단어의 길이도 고려했어야 했기 때문이다.
•
시간복잡도 :
•
성공 코드
class Solution:
def isPrefixString(self, s: str, words: List[str]) -> bool:
i = 0
# 각 단어를 확인
for word in words:
# 2중 for문내 Slice지만, 결국에는 s의 길이만큼만 순회하기 때문에 O(N)이다.
# s[a:b] -> O(b-a)이기 때문이다.
if word != s[i:i + len(word)]:
return False
# 단어 길이만큼 위치 이동
i += len(word)
# s의 길이만큼 모두 확인했다면 종료
if i == len(s):
break
return i == len(s)
Python
복사