题目描述
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
注意事项:您可以假定该字符串只包含小写字母。
我的解法——哈希字典(AC)
- 把位置和计数存到字典
- 时间空间复杂度均为O(n)。
- Beat64%
class Solution:
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
dic = {}
for i in range(len(s)):
if(s[i] in dic):
dic[s[i]][1] += 1
else:
dic[s[i]] = [i,1]
res = len(s)
for now in dic:
if(dic[now][1] == 1 and dic[now][0] < res):
res = dic[now][0]
if(res == len(s)):
return -1
else:
return res