本文共 1478 字,大约阅读时间需要 4 分钟。
注:
not c in dic
整体为一个布尔值;c in dic
为判断字典中是否含有键 cclass Solution: def firstUniqChar(self, s: str) -> str: dic = { } for c in s: dic[c] = not c in dic for c in s: if dic[c]: return c return ' ''''作者:jyd链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/solution/mian-shi-ti-50-di-yi-ge-zhi-chu-xian-yi-ci-de-zi-3/来源:力扣(LeetCode)'''
在哈希表的基础上,有序哈希表中的键值对是 按照插入顺序排序 的。基于此,可通过遍历有序哈希表,实现搜索首个 “数量为 1 的字符”。
哈希表是 去重 的,即哈希表中键值对数量 ≤ 字符串 s 的长度。
复杂度同上,不一样的是该法只需遍历一轮字符串s
class Solution: def firstUniqChar(self, s: str) -> str: dic = { } for c in s: dic[c] = not c in dic for k, v in dic.items(): if v: return k return ' ''''作者:jyd链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/solution/mian-shi-ti-50-di-yi-ge-zhi-chu-xian-yi-ci-de-zi-3/来源:力扣(LeetCode)'''
比如 s=‘ababc’,第二轮遍历s 得5次才找到c
而dic={‘a’: False, ‘b’: False, ‘c’:True},遍历dic只需3次找到
用有序表反而慢了 dic = collections.OrderedDict()
转载地址:http://dfjii.baihongyu.com/