[Java-劍指offer] 54. 字符流中第一個不重複的字符

思路:用HashMap鍵值對的特性記錄字符出現的次數

ArrayList按照HashMap順序存放所有在 HashMap的值,最後用for循環遍歷取出來

import java.util.ArrayList;
import java.util.HashMap;
public class Solution {
    HashMap<Character, Integer> map = new HashMap<Character, Integer>();
    ArrayList<Character> list = new ArrayList<Character>();
    //Insert one char from stringstream
    public void Insert(char ch)
    {
        if(map.containsKey(ch))
            map.put(ch, map.get(ch)+1);// map.get(ch)根據鍵獲取值
        else{
            map.put(ch,1);
            list.add(ch);
        }
    }
  //return the first appearence once char in current stringstream
    public char FirstAppearingOnce()
    {
        for(int i = 0; i < list.size(); i++){
            if(map.get(list.get(i)) == 1)
               return list.get(i);
        }
        return '#';
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章