剑指Offer14-字符流中第一个不重复的字符

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。

public class Solution {
   
    //char []s=new char[256];
    StringBuffer s=new StringBuffer();
    int []hash=new int[256];
    //Insert one char from stringstream
    public void Insert(char ch)
    {
   
        s.append(ch);//利用StringBuffer的可追加性
        hash[ch]++;
    }
  //return the first appearence once char in current stringstream
    public char FirstAppearingOnce()
    {
   
         
        char []str=s.toString().toCharArray();//转换成String,进而转换成数组
        int len=str.length;
        for(int i=0;i<len;i++){
   
            if(hash[str[i]]==1)
                return str[i];
        }
        return '#';
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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