請實現一個函數用來找出字符流中第一個只出現一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流中讀出前六個字符「google"時,第一個只出現一次的字符是"l"。java
其實這道題挺簡單的,分兩步能夠作到函數
Map<Character, Integer> map = new HashMap<>();
List<Character> list = new ArrayList<>();
public void insert(char ch) {
if (map.containsKey(ch)) {
map.put(ch, map.get(ch) + 1);
} else {
map.put(ch, 1);
}
list.add(ch);
}
public char firstAppearingOnce() {
char c = '#';
for (char i : list) {
if (map.get(i) == 1) {
c = i;
break;
}
}
return c;
}
複製代碼