请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"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;
}
复制代码