首页 > 其他 > 详细

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

时间:2019-09-03 22:33:59      阅读:129      评论:0      收藏:0      [点我收藏+]

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

输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。

【思路】

首先我们建立一个长度为256的数组,由于字符串中每个字符的范围是0~255,因此索引号相当于key, 而次数相当于value,再使用一个string类型记录整个字符串,当遍历完后,我们再次遍历整个字符串,寻找值为1的元素,返回其索引值就行!

char虽然是一个字符,其实质为一个8bit的空间,因此可以储存数字为0-255.

class Solution
{
private:
    string str;
    int ss[256] = {0};
public:
  //Insert>    void Insert(char ch)
    {
        str += ch;
        ss[ch]++;
    }
  //return the first appearence>    char FirstAppearingOnce()
    {
        int len = str.length();
        for(int i = 0; i < len;i++){
            if(ss[str[i]] == 1){
                return str[i];
            }
        }
        return #;
    }
};

 

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

原文:https://www.cnblogs.com/zhudingtop/p/11456028.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!