题目来源(力扣. - 力扣(LeetCode),简单)
解题思路:
二次遍历,第一次遍历用哈希表记录每个字母的出现次数,出现一次则将它的value值赋为True,将它的下标赋为key值,第二次时候则将它赋值为False。第二次遍历寻找第一个value值为True的字符,找到后返回它的key(即它的原下标),若不存在则返回-1
代码实现:
r=dict()
for c in s:
if c in r:
r[c]=False
else:
r[c]=True
for i,ch in enumerate(s):
if r[ch]:return i
return -1
总结:
与次数相关,可以考虑哈希表的使用,寻找第一个不重复的字符,则再遍历一次哈希表即可
利用字典的key和value对应的关系,将是否出现一次的情况和它的下标绑定在一起,最后返回第一次出现的即可。