剑指offer:字符流中第一个不重复的字符
来源:互联网 发布:php在线订单系统源码 编辑:程序博客网 时间:2024/06/01 22:56
- 题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。
class Solution{public: //Insert one char from stringstream void Insert(char ch) { } //return the first appearence once char in current stringstream char FirstAppearingOnce() { }};
- 分析
这里理解题目很重要很重要,当时看到给定的代码的时候有点懵,第一次遇到这种给了两个函数的,第一个还不太明白什么意思,直到按照自己原本的理解写了出来看到自己的跟示例的区别的时候才明白,原来是要在每读取一个字符后判断一次的,举个例子:
字符流为google,第一次获取到g,此时输出g;第二次获取o,得到go,此时输出g;第三次获取到o,得到goo,此时输出g;第四次获取到g,得到goog,此时输出#……以此类推,当获取完时,得到的是google,此时输出l。
然后分析实现方法,我们很简单可以想到,字符就那么256个,分别有各自对应的ASCII码,所以可以定义一个长度为256的整型数组,存储各个字符的出现次数,然后进行遍历,如果出现次数为1的情况即输出这个元素下标代表的字符。 - 代码
class Solution{public: int counter[256]={0}; string str; //Insert one char from stringstream void Insert(char ch) { counter[ch]++; str+=ch; } //return the first appearence once char in current stringstream char FirstAppearingOnce() { for(int i=0;i<str.length();i++){ if(counter[str[i]]==1){ return str[i]; } } return '#'; }};
阅读全文
0 0
- 剑指offer--字符流中第一个不重复的字符
- 《剑指Offer》学习笔记--面试题55:字符流中第一个不重复的字符
- 剑指offer 55-字符流中第一个不重复的字符
- 【剑指Offer学习】【面试题55:字符流中第一个不重复的字符】
- 《剑指offer》字符流中第一个不重复的字符
- 剑指offer—字符流中第一个不重复的字符
- 剑指Offer--字符流中第一个不重复的字符
- 字符流中第一个不重复的字符(哈希表+vecor+剑指offer)
- 《剑指offer》——字符流中第一个不重复的字符
- 剑指offer系列之五十三:字符流中第一个不重复的字符
- 《剑指offer》——字符流中第一个不重复的字符
- 剑指offer系列之53:字符流中第一个不重复的字符
- 剑指offer-面试题55:字符流中第一个不重复的字符
- 剑指offer(57):字符流中第一个不重复的字符
- 剑指offer:字符流中第一个不重复的字符
- [剑指offer]字符流中第一个不重复的字符
- 剑指Offer——字符流中第一个不重复的字符
- 剑指Offer--055-字符流中第一个不重复的字符
- 关于两个常用网络命令原理和一点说明
- Hibernate 注解映射使用方式案例
- Nginx主配置参数详解,Nginx配置网站
- 用户 'IIS APPPOOL\***' 登录失败的原因及两种解决办法
- rpm介绍
- 剑指offer:字符流中第一个不重复的字符
- PAT1026 程序运行时间
- Spring中BeanFactory和ApplicationContext的生命周期及其区别详解
- codevs 2218 [CTSC1999] 补丁vs错误 dfs+二进制
- XMl Schema校验
- 写一个简单docker运行命令
- 简单的正弦图和余弦图
- java中replace()和replaceAll()的区别
- 泛型