给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = “leetcode”
返回 0
s = “loveleetcode”
返回 2
提示:你可以假定该字符串只包含小写字母。
class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
# 1、利用出现次数和出现的先后顺序进行筛选
if len(s) == 0:
return -1
tmp = []
idx = []
dic = dict()
for i in range(0,len(s)):
if s[i] not in tmp:
# 加入tmp
tmp.append(s[i])
# 第一次出现的下标记录
idx.append(i)
# 统计出现的次数
dic[s[i]] = dic.get(s[i],0) + 1
for i in range(0,len(tmp)): # 利用list可以记录加入的顺序
if dic[tmp[i]] == 1:
return idx[i]
return -1