Search

Check If String Is a Prefix of Array

문제 설명 : 제공된 단어로 문자 목록을 처음부터 순서대로 사용 시, s 문자열을 만들 수 있는지 확인
풀이 방법
startswith 를 사용하는 방법으로는 통과가 어려웠다.
s가 포함되는 것을 확인하는게 아닌, 단어의 길이도 고려했어야 했기 때문이다.
시간복잡도 : O(N)O(N)
성공 코드
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
복사