387. First Unique Character in a String
주어진 문자열 s
에서 유일하게 등장하는 알파벳의 위치를 반환하는 문제이다. 만약 유일한 문자가 없을 경우 -1
을 리턴한다.
class Solution:
def firstUniqChar(self, s: str) -> int:
string_count = collections.Counter(s)
for i in range(len(s)):
if string_count[s[i]] == 1:
return i
return -1
counter 모듈을 이용하였다. 여기서 O(n)
의 시간 복잡도를 가진다.
문자열 s
를 처음부터 돌며 만약 카운트된 값이 1이 있다면 해당 인덱스를 반환한다. 반복문이 끝난 후에도 없다면 -1을 리턴한다.
여기서 최악의 경우 즉, 문자열의 마지막에 유니크한 문자를 발견할 경우 O(n)
의 시간 복잡도를 가지게 된다.