387. First Unique Character in a String

题目描述

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

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

注意事项:您可以假定该字符串只包含小写字母。

我的解法——哈希字典(AC)

  • 把位置和计数存到字典
  • 时间空间复杂度均为O(n)。
  • Beat64%
class Solution:
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        dic = {}
        for i in range(len(s)):
            if(s[i] in dic):
                dic[s[i]][1] += 1
            else:
                dic[s[i]] = [i,1]
        res = len(s)
        for now in dic:
            if(dic[now][1] == 1 and dic[now][0] < res):
                res = dic[now][0]
        if(res == len(s)):
            return -1
        else:
            return res