1. 程式人生 > >劍指Offer 字元流中第一個只出現一次的字元

劍指Offer 字元流中第一個只出現一次的字元

題目:

請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元”go”時,第一個只出現一次的字元是’g’。當從該字元流中讀出前六個字元”google”時,第一個只出現一次的字元是’l’。如果當前字元流沒有存在出現一次的字元,返回#字元。
樣例
輸入:“google”
輸出:“ggg#ll”
解釋:每當字元流讀入一個字元,就進行一次判斷並輸出當前的第一個只出現一次的字元。

解答:

class Solution: 
    def __init__(self):
        self.d = {}
        self.ind = 0
def firstAppearingOnce(self): """ :rtype: str """ minInd = self.ind ch = None for i in self.d: if len(self.d[i]) == 1 and self.d[i][0] < minInd: minInd = self.d[i][0] ch = i return ch if ch else
'#' def insert(self, char): """ :type char: str :rtype: void """ if char not in self.d: self.d[char] = [self.ind] else: self.d[char].append(self.ind) self.ind += 1