題目描述
請實現一個函數用來找出字符流中第一個只出現一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流中讀出前六個字符“google"時,第一個只出現一次的字符是"l"。
輸出描述:
如果當前字符流沒有存在出現一次的字符,返回#字符。
思路
用兩個列表,一個用來保存所有的字符,一個用來保存只出現一次的字符,
算法
# -*- coding:utf-8 -*-
class Solution:
# 返回對應char
def __init__(self):
self.array=[] #保存出現的所有字符
self.result=[] # 保存只出現一次的字符
def FirstAppearingOnce(self):
# write code here
if len(self.result)!=0:
for i in self.result:
return i
return '#'
def Insert(self, char):
# write code here
for i in char:
# 如果已經出現一次的字符再次出現,則將該字符從只出現一次的列表中去除
if i in self.result:
self.result.remove(i)
# 如果沒出現在result列表,野沒出現在array的列表,才能加入result列表,
# 這里是考慮排除出現奇數個相同字符的情況,
elif i not in self.array:
self.result.append(i)
self.array.append(i)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
