请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符 "go" 时,第一个只出现一次的字符是 "g"。当从该字符流中读出前六个字符 “google" 时,第一个只出现一次的字符是 "l"
解题思路
这题思路很直接,用 LinkedHashMap 啪的一下就做出来了
import java.util.LinkedHashMap;
public class Solution {
private LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
//Insert one char from stringstream
public void Insert(char ch) {
if(!map.containsKey(ch)) {
map.put(ch, 1);
} else {
map.put(ch, -1);
}
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce() {
for(char ch : map.keySet()) {
if(map.get(ch) == 1) {
return ch;
}
}
return '#';
}
}
相关文章
暂无评论...