python 3 时间复杂度O(1)解法

字符流中第一个不重复的字符

http://www.nowcoder.com/questionTerminal/00de97733b8e4f97a3fb5c680ee10720

from collections import OrderedDict

class Solution:
# 返回对应char
def init(self):
# 初始化一个有序字典(里边的键全是只出现一次的)
self.doulist = []
self.array = OrderedDict()

def FirstAppearingOnce(self):
    # write code here
    if self.array:
        for i in self.array:
            return i
    return '#'

def Insert(self, char):
    # write code here
    # 如果新字符已经存在字典中,就把字典中的该字符删掉
    if char in self.array:
        del self.array[char]
    else:
        # 如果新字符不存在与字典中,则添加到字典中
        if char in self.doulist:
            pass
        else:
            self.doulist.append(char)
            self.array[char] = char
全部评论
会有问题吧,如果输入的字符是"aabba",他出现了两次a就删除了a,那他下一次出现后,就会记录在array中,就会有问题,因为他出现应该是第三次
1 回复 分享
发布于 2020-03-03 16:59

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务