示例代码
import java.util.*;
public class Solution {
public Map<Character,Integer> myMap=new HashMap<>();
Queue<Character> queue=new LinkedList<>();
//Insert one char from stringstream
public void Insert(char ch)
{
myMap.put(ch,myMap.getOrDefault(ch,0)+1);
queue.offer(ch);
//清理队列头部不再是第一个不重复的字符的元素 可能有多个重复元素
while(!queue.isEmpty()&&myMap.get(queue.peek())>1){
queue.poll();
}
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce()
{
if(queue.isEmpty()){
return '#';
}
return queue.peek(); // 队列头部的字符是第一个不重复的字符
}
}
效果展示