zoukankan      html  css  js  c++  java
  • 【剑指Offer-时间效率与空间效率的平衡】面试题50.2:字符流中第一个不重复的字符

    题目描述

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

    思路

    类似于面试题50:第一个只出现一次的字符,因为字符的总数是有限的,所以可以使用哈希表来映射字符以及字符出现的次数。代码如下:

    class Solution
    {
    public:
        string str = "";
        int dict[26] = {0};
      //Insert one char from stringstream
        void Insert(char ch)
        {
             str += ch;
             dict[ch]++;
        }
      //return the first appearence once char in current stringstream
        char FirstAppearingOnce()
        {
            for(int i=0; i<str.length(); i++){
                if(dict[str[i]]==1)
                    return str[i];
            }
            return '#';
        }
    
    };
    
  • 相关阅读:
    在centos上搭建Git服务器
    glog日志库移植Android平台
    水葱
    路易斯安娜鸢尾
    再力花
    矮生百慕大
    洒金珊瑚
    八角金盘
    锦绣杜鹃
    茶梅球
  • 原文地址:https://www.cnblogs.com/flix/p/12577265.html
Copyright © 2011-2022 走看看