字符流中的第一个不重复的字符_JAVA_中等

字符流中第一个不重复的字符

http://www.nowcoder.com/questionTerminal/00de97733b8e4f97a3fb5c680ee10720

  • 一个哈希表储存字符出现次数,一个队列储存第一次出现的字符
  • 输入时记录字符出现次数,第一次出现则加入队列
  • 输出时遍历队列,遇到只在哈希表中出现过一次的字符就输出,没有就输出#
import java.util.*;

public class Solution {
    Map<Character, Integer> cache = new HashMap();
    Queue<Character> queue = new LinkedList();
    //Insert one char from stringstream
    public void Insert(char ch)
    {
        // 不存在就进对列,存缓存
        if(!cache.containsKey(ch)) {
            cache.put(ch,1);
            queue.offer(ch);
        // 存在就加次数
        } else {
            cache.put(ch, cache.get(ch) + 1);
        }
    }
  //return the first appearence once char in current stringstream
    public char FirstAppearingOnce()
    {
        for(Character ch : queue) {
            if(cache.get(ch) == 1) {
                return ch;
            }
        }
        return '#';
    }
}
全部评论

相关推荐

Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务