leetcode387.字符串中的第一个唯一字符

123 阅读1分钟

387.字符串中的第一个唯一字符

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

可以假定该字符串只包含小写字母。

class Solution:
    def firstUniqChar(self, s: str) -> int:
        count = collections.Counter(s)  # hash map
        for idx, ch in enumerate(s):  # 查找下标
            if count[ch] == 1:
                return idx
        return -1
"""
最优解法:线性时间复杂度解法
为了保证每个元素是唯一的,至少得把每个字符都遍历一遍。
遍历一遍字符串,然后把字符串中每个字符出现的次数保存在一个散列表中。
再遍历一次字符串,利用散列表来检查遍历的每个字符是不是唯一的。
如果当前字符唯一,直接返回当前下标就可以了。
"""