2019-08-16 剑指 字符流中第一个不重复的字符

2019-08-17  本文已影响0人  mztkenan
class Solution:
    # 返回对应char
    # restore=[-1 for i in range(257)] # 类变量导致会保存上一次实例化的内容,这里导致莫名的错误
    # index=0

    def __init__(self):
        self.restore=[-1 for i in range(257)]
        self.index=0

    def FirstAppearingOnce(self):
        min_v,min_i=1000000000000,258
        for i in range(257):
            if self.restore[i]>=0 and self.restore[i]<min_v :
                min_v=self.restore[i]
                min_i=i
        if min_i==258:return '#' #记得这里特殊情况返回'#'
        return chr(min_i)


    def Insert(self, char):
        if self.restore[ord(char)]==-1:
            self.restore[ord(char)]=self.index
        elif self.restore[ord(char)]>=0:self.restore[ord(char)]=-2 # 妈的,这里少了一个=,耽误五分钟
        self.index += 1

上一篇 下一篇

猜你喜欢

热点阅读