First Unique Character in a String

Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

Examples:

s = "leetcode"
return 0.

s = "loveleetcode",
return 2.
Note: You may assume the string contain only lowercase letters.

class Solution:
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        d = {}
        cur = 0
        for i in s:  # 用一个字典记录所有只出现一次的字母的index,多次出现的字母index置-1
            if i not in d:
                d[i] = cur
            else:
                d[i] = -1
            cur += 1
        _min = len(s)
        for k, v in d.items():  # 找到只出现一次的字母的最小的index
            if v != -1 and v < _min:
                _min = v
        return _min if _min != len(s) else -1  # 如果没找到(_min没变化),则返回-1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容