题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)
思路:
维护一个字典,key是字符,value是两个元素的列表,第一个元素为该key出现的次数,第二个元素是key第一次出现的位置
代码:
class Solution:
def FirstNotRepeatingChar(self, s):
# write code here
dic = {}
for i in range(len(s)):
if s[i] not in dic:
dic[s[i]] = [1, i]
else:
dic[s[i]][0] += 1
res = -1
for v in dic.values():
if v[0] == 1:
if res == -1:
res = v[1]
else:
res = min(res, v[1])
return res