专栏首页AI那点小事剑指offer——字符流中第一个不重复的字符

剑指offer——字符流中第一个不重复的字符

概述

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


思路

做这一题时,刚开始对题意的理解有所偏差。认为是寻找字符流中第一次出现的不重复的字符,但是本意是在线处理,寻找当前字符流中第一次不重复的字符。


C++ AC代码

#include <iostream>
#include <map>
#include <queue>
using namespace std;

class Solution
{
    private:
        map<char,int> Map;
        queue<char> letter;

    public:
        //Insert one char from stringstream
        void Insert(char ch){
            Map[ch]++;
            if(Map[ch] == 1){
                letter.push(ch);
            }
        }

        //return the first appearence once char in current stringstream
        char FirstAppearingOnce(){
            while(!letter.empty() && Map[letter.front()] >= 2){
                letter.pop();
            }
            if(letter.empty()){
                return '#'; 
            }else{
                return letter.front();
            }
        }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 社团活动学分管理系统

    之前忙于期末考试,所以没有时间把期末之前的课设写成博客。这次的课设虽然给定了可选题目,但是老师说做什么都可以。看见可选题目里有关于学分管理系统,考虑到时间紧迫,...

    AI那点小事
  • 剑指offer--旋转数组的最小数字

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,...

    AI那点小事
  • 2017美国数学建模MCM C题(大数据)翻译 “合作和导航”

    Traffic capacity is limited in many regions of the United States due to the numb...

    AI那点小事
  • 新手最常见的10个C语言错误,有人甚至全都中了!

    C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”。但由于这个灵活给程序的调试带来了许...

    诸葛青云
  • C语言位运算详解:这些常见的错误不能犯

    刚学C语言那会儿,谁没遇到过一点小麻烦呢,经常吭哧吭哧写了半天,结果不能实现?why?返回去一个一个检查,眼睛都抽筋了,终于找出了元凶!!!以后记住了,这些常见...

    诸葛青云
  • 高效备考方法-程序设计题

    1.首先仔细审题,了解题目的要求,记下题目给出的输入和输出例示,以便检验在完成指定的函数后,程序运行的结果是否正确。 2.调出源程序后,应对照函数首部的形参...

    用户6755376
  • 十七个C语言新手编程时常犯的错误及解决方式

    编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

    老九君
  • 十七个C语言新手编程时常犯的错误及解决方式

    C编译的程序对语法检查并不像其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常...

    老九君
  • C语言编程时90%的小伙伴常犯的18种错误

    C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”。

    老九君
  • 【超全】C语言小白最容易犯的17种错误,你中了几个?

    C编译的程序对语法检查并不像其它高级语言那么严格,这就给编程大佬们留下了“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对刚刚接触C语言的人来...

    老九君

扫码关注云+社区

领取腾讯云代金券