演算法試題 找出字元流中第乙個不重複的元素

2022-06-27 23:12:13 字數 1442 閱讀 9771

題目:請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,

第乙個只出現一次的字元是"g"。當從該字元流中讀出前六個字元「google"時,第乙個只出現一次的字元是"l"。

思路:引入兩個輔助儲存空間。乙個dict儲存當前出現的字元以及字元出現的次數,乙個list儲存當前出現字元。

然後每次比較list的第乙個字元在dict中對應的次數,如果為1則輸出這個字元,如果不為1則彈出這個字元比較下乙個字元。

#

-*- coding:utf-8 -*-

class

solution:

#返回對應char

def__init__

(self):

#儲存當前字元

self.alist =

#儲存當前字元及其出現次數,出現大於1次,就設成2次

self.adict ={}

def

#write code here

while len(self.alist) > 0 and self.adict[self.alist[0]] == 2:

self.alist.pop(0)

if len(self.alist) ==0:

return'#

'else

:

return

self.alist[0]

definsert(self, char):

#write code here

if char not

inself.adict.keys():

else

: self.adict[char] = 2

class

firstone:

def__init__

(self, s):

self.di ={}

self.li =

self.s =s

defins(self):

for i in

self.s:

ifnot self.di.get(i, ""

):

else

: self.di[i] = 2

return

self.di, self.li

deffindfirstone(self):

for i in

self.li:

if self.di[i] == 1:

return

i

return

0findone =firstone(s)

print

(findone.ins())

print(findone.findfirstone())

找出字串中第乙個不重複的字元

leetcode原題位址 將字串轉換成字元陣列 使用兩層迴圈遍歷,最終根據第二層迴圈退出時的下標值來判斷是否是不重複的字元 我的 public intfirstuniqchar string s if temp i temp j if j length if i length return resu...

找出字元流中第乙個只出現一次的字元

請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元 go 時,第乙個只出現一次的字元是 g 當從該字元流中讀出前六個字元 google 時,第乙個只出現一次的字元是 l 如果當前字元流沒有存在出現一次的字元,返回 字元 class solution insert...

字元流中第乙個不重複的字元

請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元 go 時,第乙個只出現一次的字元是 g 當從該字元流中讀出前六個字元 google 時,第乙個只出現一次的字元是 l include include using namespace std 找出輸入流中的第乙個...