Leetcode Link: 剑指 Offer 50. 第一个只出现一次的字符 - 力扣(LeetCode)
题目

解法一
思路: 利用哈希表,出现一次的为 True,大于一次的为 False 然后重新遍历,找第一个True
题解:
class Solution:
def firstUniqChar(self, s: str) -> str:
dd = {}
for c in s:
dd[c] = c not in dd.keys()
for c in s:
if dd[c] == True:
return c
return ' '可以使用有序字典来直接遍历字典。 有序字典指的是先输入键值对A,在输入键值对B。当遍历字典的时候,先会遍历到A,再遍历到B。
对于python3.6之前,采用如下方式创建有序字典
from collections import OrderedDict
dd = OrderedDict()而在python3.6之后(含),默认的字典已经是有序字典了。
class Solution:
def firstUniqChar(self, s: str) -> str:
dd = {}
for c in s:
dd[c] = c not in dd.keys()
for k, v in dd.items(): # 有序字典,按照输入顺序输出。
if v == True:
return k
return ' '