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

2022-07-29 02:39:17 字數 1156 閱讀 4260

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

輸出描述:

如果當前字元流沒有存在出現一次的字元,返回#字元。

思路:開始以為這一道題有很流弊的解法,把自己想的unordered_map的方法放在一邊,其實就是使用乙個256大的陣列模擬雜湊就行了,每次插入記得統計目前該字元有多少個了,然後遍歷一邊這個vector,就可以找到第乙個出現的。不過需要注意只對乙個類進行操作。

自己的錯誤點還是很多的:首先是

1)在類裡面vectorv(10),直接宣告10個元素大小的陣列是錯誤的,必須使用=或者{},vectorv = vector(10,0);

2)這個是思維上的漏洞錯誤:看第7行的for迴圈,這個類有乙個string,vector,每次插入乙個字元,vector都從0開始統計字串,比如g,v[g] = 1,然後插入乙個o,統計的時候還是從string的0位置開始,即v[g] = 2,這個就是自己的思維錯誤了,應該每次進入for迴圈統計前都需要將陣列置為0.

當然最簡單的方法是每次插入的時候就直接統計出現次數,這樣可以控制字元第一次出現的時候才 進行統計。

1

class

solution

6char

7for(int i = 0;i < src.size();++i)

10for(int i = 0;i < src.size();++i)14}

15return'#

';16}

17private

:18 vector v = vector (256

);19

string

src;

20 };

標準答案:

class

solution

//char

for(int i = 0;i < src.size();++i)

}return'#';}

private

: vector

v = vector (256,0

);

string

src;

};

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

字串 map 一 題目 請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元 go 時,第乙個只出現一次的字元是 g 當從該字元流中讀出前六個字元 google 時,第乙個只出現一次的字元是 l 輸出描述 如果當前字元流沒有存在出現一次的字元,返回 字元。二 思路...

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

題目描述 請實現乙個函式用來找出字元流中第乙個只出現一次的字元。輸出描述 如果當前字元流沒有存在出現一次的字元,返回 字元。思路 使用乙個linkedhashmap來統計字元出現的次數。實現 maplinkedhashmap new linkedhashmap public void insert ...

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

請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元 go 時,第乙個只出現一次的字元是 g 當從該字元流中讀出前六個字元 google 時,第乙個只出現一次的字元是 l 如果當前字元流沒有存在出現一次的字元,返回 字元。法1 建立乙個長度256的陣列,當作字典 ...