在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = “abaccdeff”
返回 “b”
s = “”
返回 " "
限制:
0 <= s 的长度 <= 50000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路1:有序字典
利用有序字典统计每个字符出现的次数,然后遍历有序字典,找到第一个为1的即可。
class Solution:
def firstUniqChar(self, s: str) -> str:
import collections
# 有序字典
dc = collections.OrderedDict()
for i in range(len(s)):
if s[i] not in dc:
dc[s[i]] = 1
else:
# print(s[i], dc)
dc[s[i]] = dc[s[i]] + 1
for k, v in dc.items():
if v == 1:
return k
return ' '