[LeetCode]387. 字符串中的第一个唯一字符(First Unique Character in a String)

题目描述

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

案例:

s = “leetcode”
返回 0.

s = “loveleetcode”,
返回 2.

注意事项:您可以假定该字符串只包含小写字母。

解题思路

采用一个哈希表,遍历字符串,将每个字符出现的次数存下来,第二次遍历字符串,若某字符次数为1则返回index。

代码

Python 3.6

1
2
3
4
5
6
7
8
9
class Solution:
def firstUniqChar(self, s: str) -> int:
hashmap = {}
for char in s:
hashmap[char] = hashmap.setdefault(char, 0) + 1
for idx, char in enumerate(s):
if hashmap[char] == 1:
return idx
return -1