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

2021-09-10 09:38:37 字數 1291 閱讀 4327

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

輸出描述:

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

思路:用乙個128大小的陣列統計每個字元出現的次數

用乙個佇列,如果第一次遇到ch字元,則插入佇列;其他情況不插入

求解第乙個出現的字元,判斷隊首元素是否只出現一次,如果是直接返回,否則刪除,繼續第3步驟

class solution

char()

solution()

//建構函式

private:

unsigned

int cnt[

128]

; queue<

char

> data;

};

時間複雜度o(1),空間複雜度o(n)

分析:相同的字元只被插入一次,最多push128個

』0』與』\0』的區別:

字元』0』:char c = 『0』; 它的ascii碼實際上是48。記憶體中存放表示:00110000

字元』\0』 : ascii碼為0,表示乙個字串結束的標誌。這是轉義字元。

本例中需要對cnt陣列進行初始化,上面使用建構函式進行初始化,也可以在定義陣列時直接進行初始化。

class solution

char()

private:

unsigned

int cnt[

128]=;

queue<

char

>data;

};

將所有的字元連線成字串,對於每乙個字元統計該字元出現的次數。

class solution

;//insert one char from stringstream

void

insert

(char ch)

char()

};

用map統計每一種字元出現的個數,在所有字元中乙個乙個查詢,檢視每個/每種字元出現的次數。

class solution

char()

};

本題的關鍵是統計出每一種/個字元出現的次數,統計完成後檢視每一種/個字元的個數,找出次數為1的字元。

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

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

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

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

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

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