LeetCode #387. First Unique Character in a String

题目

387. First Unique Character in a String


解题方法

设置一个字典,其中的键是每个字母,值是一个列表,列表0号位置存放的是字母的出现频数,1号位置存放的是字母的下标。遍历字符串进行计数和统计,之后遍历字典,找到频数为1的最小下标。
时间复杂度:O(n)
空间复杂度:O(n)


代码

class Solution:
    def firstUniqChar(self, s: str) -> int:
        dic = {}
        for i in range(len(s)):
            if s[i] not in dic:
                dic[s[i]] = [1, i]
            else:
                dic[s[i]][0] += 1
        
        rat = len(s)
        for key in dic.keys():
            if dic[key][0] == 1:
                rat = min(rat, dic[key][1])
        
        if rat == len(s):
            rat = -1
        
        return rat
posted @ 2020-12-08 08:59  老鼠司令  阅读(59)  评论(0编辑  收藏  举报