解题思路:
利用一个哈希表来存放字符出现的次数,键为char,值为字符出现的次数,同时利用一个集合ArrayList来存放每个出现的字符,用于在后续遍历时取到每一个字符
import java.util.ArrayList;
import java.util.LinkedHashMap;
public class Solution {
//创建一个哈希表,用于存放字符流中每个字符出现的次数
LinkedHashMap<Character, Integer> linkedHashMap = new LinkedHashMap<>();
ArrayList<Character> arrayList = new ArrayList<>();
//Insert one char from stringstream
public void Insert(char ch) {
if (linkedHashMap.containsKey(ch)) {
Integer value = linkedHashMap.get(ch);
value++;
linkedHashMap.put(ch, value);
} else {
linkedHashMap.put(ch, 1);
}
arrayList.add(ch);
}
// return the first appearence once char in current stringstream
public char FirstAppearingOnce() {
for (int i = 0 ; i < arrayList.size(); i++) {
Character ch = arrayList.get(i);
if (linkedHashMap.get(ch) == 1) {
return ch;
}
}
return '#';
}
}