在字符串 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 ' '