题解 | #字符流中第一个不重复的字符#
字符流中第一个不重复的字符
https://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720
空间复杂度O(1)
# -*- coding:utf-8 -*- class Solution: def __init__(self): # 这两个都没有重复的字符,空间复杂度O(1) self.repeat = set() # 记录已重复的字符 self.s = [] # 记录尚未重复的字符(首位就是第一个不重复的字符) def FirstAppearingOnce(self): return '#' if not self.s else self.s[0] def Insert(self, char): if char not in self.s: # 不在s中,再判断在不在repeat中 if char not in self.repeat: self.s.append(char) else: # 在s中,从s中去掉,再添加到repeat self.s.remove(char) self.repeat.add(char)