剑指Offer(五十四):字符流中第一个不重复的字符

2018年1月24日10:47:29 4 3,779 °C
摘要

请实现一个函数用来找出字符流中第一个只出现一次的字符。

剑指Offer(五十四):字符流中第一个不重复的字符

一、前言

本系列文章为《剑指Offer》刷题笔记。

刷题平台:牛客网

书籍下载:共享资源

二、题目

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

输出描述:

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

1、思路

这道题还是很简单的。将字节流保存起来,通过哈希表统计字符流中每个字符出现的次数,顺便将字符流保存在string中,然后再遍历string,从哈希表中找到第一个出现一次的字符。

2、代码

C++:

Python:

weinxin
微信公众号
分享技术,乐享生活:微信公众号搜索「JackCui-AI」关注一个在互联网摸爬滚打的潜行者。
Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  2   博主  2

    • avatar yyx 来自天朝的朋友 火狐浏览器 Ubuntu Linux 北京市 移动 2

      int count[256] = {0};
      count[ch]++;
      博主大大,请问这个也是哈希表吗,int count[256] = {0};这个不是数组初始化吗 :?: 不是很懂哈希表到底怎么定义呀,之前还看到过map

        • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器 Mac OS X 10_14_4 北京市 百度网讯科技联通节点

          @yyx 额,我这里有问题。。python的是,C++使用数组统计的,可以改为字典的。

        • avatar 打不死的黄妖精 来自天朝的朋友 谷歌浏览器 Windows 8.1 江苏省无锡市 移动 1

          你这个return ‘#’;有问题吧,如果没有出现,那么输出应该是’’