題目描述
請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù)用來找出字符流中第一個(gè)只出現(xiàn)一次的字符。例如,當(dāng)從字符流中只讀出前兩個(gè)字符"go"時(shí),第一個(gè)只出現(xiàn)一次的字符是"g"。當(dāng)從該字符流中讀出前六個(gè)字符“google"時(shí),第一個(gè)只出現(xiàn)一次的字符是"l"。
輸出描述:
如果當(dāng)前字符流沒有存在出現(xiàn)一次的字符,返回#字符。
思路
用兩個(gè)列表,一個(gè)用來保存所有的字符,一個(gè)用來保存只出現(xiàn)一次的字符,
算法
# -*- coding:utf-8 -*-
class Solution:
# 返回對(duì)應(yīng)char
def __init__(self):
self.array=[] #保存出現(xiàn)的所有字符
self.result=[] # 保存只出現(xiàn)一次的字符
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:
# 如果已經(jīng)出現(xiàn)一次的字符再次出現(xiàn),則將該字符從只出現(xiàn)一次的列表中去除
if i in self.result:
self.result.remove(i)
# 如果沒出現(xiàn)在result列表,野沒出現(xiàn)在array的列表,才能加入result列表,
# 這里是考慮排除出現(xiàn)奇數(shù)個(gè)相同字符的情況,
elif i not in self.array:
self.result.append(i)
self.array.append(i)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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