請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元 「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...