剑指 Offer 50. 第一个只出现一次的字符
剑指 Offer 50. 第一个只出现一次的字符
Difficulty: 简单
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = "abaccdeff"
返回 "b"
s = ""
返回 " "
限制:
0 <= s 的长度 <= 50000
Solution
题目中的关键是第一个出现只出现一次的字符,那么考察的点一般就是哈希表,Python3.6之后字典是默认有序的,第一次遍历字符串记录字符是否出现多次,第二次遍历哈希表时返回第一个只出现一次的字符。
class Solution:
def firstUniqChar(self, s: str) -> str:
if not str:
return ' '
# python3.6之后字典默认是有序的
d = {}
for char in s:
d[char] = True if char in d else False
for k, v in d.items():
if not v:
return k
return " "