387. First Unique Character in a String
Easy
Given a string s, find the first non-repeating character in it and return its index. If it does not exist, return -1.
Example 1:
Input: s = "leetcode"
Output: 0
Example 2:
Input: s = "loveleetcode"
Output: 2
Example 3:
Input: s = "aabb"
Output: -1
Constraints:
- 1 <= s.length <= 105
- s consists of only lowercase English letters.
문제 풀이
문제 접근
- 문장의 길이가 10^5 이기 때문에 Linear 시간 안에 풀어야한다. O(n)
풀이
- 해쉬맵을 사용해서 글자가 몇개인지 모두 확인해서 답을 구하자.
- 어느 문자가 몇개있는지 알려면 모든 숫자를 세어봐야한다.
- defaultdict(int) 로 세어도되고, Counter 를 사용해서 답을 구해도 된다.
소스 코드
class Solution:
def firstUniqChar(self, s: str) -> int:
hashmap = Counter(s)
for index, l in enumerate(s):
if hashmap[l] == 1:
return index
return -1
'컴퓨터공학 > LeetCode 1000' 카테고리의 다른 글
[LeetCode] 804. Unique Morse Code Words (0) | 2022.08.17 |
---|---|
[LeetCode] 5. Longest Palindromic Substring (0) | 2022.08.16 |
[LeetCode] 13. Roman to Integer (0) | 2022.08.16 |
[LeetCode] 90. Subsets II (0) | 2022.08.14 |
[LeetCode] 191. Number of 1 Bits (0) | 2022.08.14 |