【力扣日记】387 字符串中的第一个唯一字符

题目描述:

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -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%的用户

发布了70 篇原创文章 · 获赞 15 · 访问量 4324

猜你喜欢

转载自blog.csdn.net/Heart_for_Ling/article/details/103303553