387.字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
可以假定该字符串只包含小写字母。
class Solution:
def firstUniqChar(self, s: str) -> int:
count = collections.Counter(s) # hash map
for idx, ch in enumerate(s): # 查找下标
if count[ch] == 1:
return idx
return -1
"""
最优解法:线性时间复杂度解法
为了保证每个元素是唯一的,至少得把每个字符都遍历一遍。
遍历一遍字符串,然后把字符串中每个字符出现的次数保存在一个散列表中。
再遍历一次字符串,利用散列表来检查遍历的每个字符是不是唯一的。
如果当前字符唯一,直接返回当前下标就可以了。
"""