題目描述
請實現乙個函式用來找出字元流中第乙個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第乙個只出現一次的字元是"g"。當從該字元流中讀出前六個字元「google"時,第乙個只出現一次的字元是"l"。
輸出描述:
如果當前字元流沒有存在出現一次的字元,返回#字元。題解一:hashmap
1private
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 }
測試:
1public
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 對這個題目思考,可以發現,出現的字元 和 它的出現的次數 是一種對應關係,自然聯想到 雜湊表...