LeetCode #387. First Unique Character in a String
题目
387. First Unique Character in a String
解题方法
设置一个字典,其中的键是每个字母,值是一个列表,列表0号位置存放的是字母的出现频数,1号位置存放的是字母的下标。遍历字符串进行计数和统计,之后遍历字典,找到频数为1的最小下标。
时间复杂度:O(n)
空间复杂度:O(n)
代码
class Solution:
def firstUniqChar(self, s: str) -> int:
dic = {}
for i in range(len(s)):
if s[i] not in dic:
dic[s[i]] = [1, i]
else:
dic[s[i]][0] += 1
rat = len(s)
for key in dic.keys():
if dic[key][0] == 1:
rat = min(rat, dic[key][1])
if rat == len(s):
rat = -1
return rat