import java.util.Queue;
import java.util.LinkedList;
public class Solution {
//Insert one char from stringstream
int a[]=new int[128];///存储字符出现的次数
Queue<Character>queue=new LinkedList<Character>();///存储只出现一次的字符
public void Insert(char ch)///插入函数
{
int m=(int)ch;
if(a[m]==0){///判断是否是第一次
queue.offer(ch);///是的话 加入到队列中
}
a[m]++;
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce()
{
while(!queue.isEmpty()){///队列不为空 表示还有只出现一次的字符
char c=queue.peek();///取队首元素
int m=(int)c;
if(a[m]==1){///如果只出现一次
return c;
}
else{/// 出现多次 更新队列
queue.remove();
}
}
return '#';
}
}
字符流中第一个不重复的字符
最新推荐文章于 2022-06-25 22:21:15 发布