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

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

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

队列:空间O(1),时间O(1)

import java.util.*;
public class Solution {
    //Map<Character,Integer> map = new LinkedHashMap<>();
    //Insert one char from stringstream
    int[] nums = new int[128];
    Queue<Character> queue = new LinkedList<>();
    public void Insert(char ch)
    {
        if(nums[ch]++ == 0){
            queue.add(ch);
        }
    }
  //return the first appearence once char in current stringstream
    public char FirstAppearingOnce()
    {
        while(!queue.isEmpty()){
            if(nums[queue.peek()]==1)
                return queue.peek();
            else queue.remove();
        }
        return '#';
    }
}

LinkedHashMap:空间O(N),时间O(1)

import java.util.*;
public class Solution {
    Map<Character,Integer> map = new LinkedHashMap<>();
    //Insert one char from stringstream
    public void Insert(char ch)
    {
        if(map.containsKey(ch))
            map.put(ch,map.get(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 '#';
    }
}
全部评论

相关推荐

ZywOo_求职版:谁问你了....
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务