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

2021-10-04 00:19:48 字數 1243 閱讀 8869

題目描述

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

輸出描述:

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

1

private

static hashmapmap=new

hashmap();

2private

static arraylistlist=new arraylist();3//

insert one char from stringstream

4public

static

void insert(char

ch) else

10list.add(ch);11}

12//

13public

static

char

14char end='#';

15for(char

key : list)20}

21return

end;

22 }

題解二:hash表

1

//乙個字元佔8位,因此不會超過256個,可以申請乙個256大小的陣列來實現乙個簡易的雜湊表

2private

static

int hashtable=new

int[256];

3static stringbuffer s=new

stringbuffer();4//

insert one char from stringstream

5public

static

void insert01(char

ch) 9//

10public

static

char

11char str=s.tostring().tochararray();

12for(char

c:str)

16return '#';

17 }

測試:

1

public

static

void

main(string args) 9}

10 輸出:hhhhhhhhhh

劍指offer(55)刪除鍊錶中重複節點

19.3.10 題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 這題暴力即可 function listnode x function deleteduplication phead...

劍指offer 55 刪除鍊錶中重複的節點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路 製造兩個個頭節點指向phead,乙個用來修改鏈路,乙個作為最後輸出 再創乙個節點等於phead,修改鏈路的那個剛好在temp前面...

劍指offer(51) 字元流中第乙個不重複的字元

請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元 go 時,第乙個只出現一次的字元是 g 當從該字元流中讀出前六個字元 google 時,第乙個只出現一次的字元是 l 對這個題目思考,可以發現,出現的字元 和 它的出現的次數 是一種對應關係,自然聯想到 雜湊表...