剣指offer全集python版-文字ストリームの最初の重複しない文字

3242 ワード

タイトルの説明:文字ストリームに最初に1回しか現れない文字を見つけるための関数を実装してください.例えば、文字ストリームから最初の2文字「go」のみが読み出される場合、最初に1回しか現れない文字は「g」である.この文字ストリームから最初の6文字「google」を読み出すと、最初に1回しか現れない文字は「l」である.
考え方:
辞書を開く.
コード:
# -*- coding:utf-8 -*-
class Solution:
    #     char
    def __init__(self):
        self.s=''
        self.dict1={}
    def FirstAppearingOnce(self):
        # write code here
        for i in self.s:
            if self.dict1[i]==1:
                return i
        return '#'
    def Insert(self, char):
        # write code here
        self.s=self.s+char
        if char in self.dict1:
            self.dict1[char]=self.dict1[char]+1
        else:
            self.dict1[char]=1