题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。
解题思路:
创建hashmap记录数值,为1则加入队列,大于1则从队列中删除,然后返回队列首位。
注:也可以不删除,在查询的时候,遍历队列,如果首位在hashmap中是1则返回,否则出队继续查询。
class Solution:
def __init__(self):
self.arr = []
self.dic = {}
self.remeber = []
# 返回对应char
def FirstAppearingOnce(self):
# write code here
return self.remeber[0] if self.remeber else "#"
def Insert(self, char):
# write code here
self.arr.append(char)
if not self.dic.get(char,0):
self.remeber.append(char)
self.dic[char] = self.dic.get(char,0) + 1
if self.dic[char] == 2:
self.remeber.remove(char)