牛客-Python-字符流中第一个不重复的字符
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。
代码:看到题目和给出的代码形式没搞懂题目的意思
# -*- coding:utf-8 -*- class Solution: # 返回对应char def FirstAppearingOnce(self): # write code here def Insert(self, char): # write code here
看到别人的解法才明白
问题:1、怎么标记出现一次(自己考虑到了使用字典)
2、怎么找到第一个出现一次(走了弯路,只考虑了字典,可以对原字符串进行遍历)
# -*- coding:utf-8 -*- class Solution: # 返回对应char def __init__(self): self.s = '' self.sdict = {} def FirstAppearingOnce(self): # write code here result = '#' for k in self.s: if self.sdict[k]==1: return k return result def Insert(self, char): # write code here self.s += char if char not in self.sdict: self.sdict[char]=1 else: self.sdict[char]+=1