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

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

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

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

class Solution:
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        from collections import OrderedDict
        dic = OrderedDict()
        
        for idx, c in enumerate(s):
            if c not in dic.keys():
                dic[c] = idx
            else:
                // 用-1标记存在重复的字符
                dic[c] = -1
        
        for _, ele in dic.items():
            // 有序字典中第一个不存在重复的字符
            if ele != -1:
                return ele
        
        return -1
posted @ 2018-07-19 21:58  yuyin  阅读(58)  评论(0编辑  收藏  举报