题目描述:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
算法思路:
要找到某个字符不重复,意味着起码要遍历一遍字符串,所以最好的方法是遍历字符串然后用字典给每个字符计数。
!!!字典的输出是按照输入的顺序来的
得到字典后,遍历字典,第一个值为1的字符就是要找的字符,然后可以再遍历一次找到索引位置,python的话可以使用内置函数index。
两个特例:1、s是空字符串,直接返回-1;2、没有不重复字符,这一步在遍历字典时完成,如果直到遍历结束都没找到值为1的,即返回-1.
class Solution:
def firstUniqChar(self, s: str) -> int:
if not s:return -1
d={}
for i in s:
d[i]=d.get(i,0)+1
for i,j in d.items():
if j==1:return s.index(i)
else:return -1
执行用时 :108 ms, 在所有 python3 提交中击败了81.51%的用户