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

相关推荐

Debug_EVE:简历不要做成左右两页的,尽量做成上下一页
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-08 19:53
已编辑
AAA不喝拿铁:海投吧,感觉项目写的可以了,能cover住提问就行。我根据真实面经整理得到的最全(高/中/低频)面试题,适合面试前短期突击&长期提高补充,需要的牛u可以关注一手我的专栏,祝好运
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务