[LEETCODE] 387: First Unique Character in a String(Python)

박나현·2024년 4월 9일

First Unique Character in a String - LeetCode

문제 설명

처음으로 등장한 유일한 문자의 위치를 출력해보자.

나의 풀이

class Solution:
    def firstUniqChar(self, s: str) -> int:
        d=dict()
        M=(10**5)+1
        for i in range(len(s)):
            if s[i] not in d:
                d[s[i]]=i
            else:
                d[s[i]]=M
        char=list(d.values())
        answer=min(char)
        if answer==M:
            return -1
        else:
            return answer

딕셔너리로 중복을 체크하면서 각 문자가 등장한 인덱스를 저장한다. 중복 등장하는 값이 있다면 최대값(배열의 길이+1)으로 변경해준다.
밸류값 중 가장 작은 값을 찾아서 그 값이 최대값과 같지 않을 경우만 출력한다. 가장 작은 값이 최댓값이라면 모든 문자가 중복되었다는 의미이므로 -1을 출력한다.

시간복잡도

딕셔너리 작성 시 O(n), 최솟값 계산 시 O(n)이 걸린다.

profile
의견을 가지고 학습하기, 질문하기, 궁금했던 주제에 대해 학습하는 것을 미루지 않기

0개의 댓글