每日一道leetcode(python)387. 字符串中的第一个唯一字符

每日一道leetcode387. 字符串中的第一个唯一字符

2021.07.17

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

 

示例:

s = "leetcode"
返回 0

s = "loveleetcode"
返回 2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

很简单的题,无非就是对字符串的字母进行频率统计,找到出现频率为1 的字母索引。

​ 借助哈希映射两次遍历完成。第一次遍历进行字母频率统计,Hash Map 的Key 为字母,Value 为出现频率。第二次遍历找到频率为 1 的字母索引返回即可。

描述
count() 方法用于统计某个元素在列表中出现的次数。

语法
count()方法语法:

list.count(obj)
from collections import Counter

c = Counter('sadasfas')
print(c)
a=['su','bu','sum','bu','sum','bu']
c = Counter(a)
print(c)
c.update('sadasfas') #添加
print(c)

输出结果:
Counter({'s': 3, 'a': 3, 'd': 1, 'f': 1})
Counter({'bu': 3, 'sum': 2, 'su': 1})
Counter({'bu': 3, 's': 3, 'a': 3, 'sum': 2, 'su': 1, 'd': 1, 'f': 1})
class Solution:
    def firstUniqChar(self, s: str) -> int:
        count = collections.Counter(s)
        index = 0
        for i in s:
            if count[i] == 1:
                return index
            else:
                index += 1
        return -1