面试题55:字符流中第一个不重复的字符
来源:互联网 发布:python运算符 编辑:程序博客网 时间:2024/06/05 17:38
题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
输出描述::如果当前字符流没有存在出现一次的字符,返回#字符。
这种题目我一般是采用一个map去记它的计数,书上是采用一个数组去计数,采用数组的好处是,在字符很多很多的情况下,优势明显,但是我编写的程序没有在牛客上通过,自己运行那个没过的测试例子却通过了,我也不知道为啥没通过。
class Solution{public: //Insert one char from stringstream Solution():index(0) { int i; for(i=0; i<256; i++) occurrence[i] = -1; } void Insert(char ch) { if(occurrence[ch] == -1) occurrence[ch] = index; else if(occurrence[ch] >= 0) occurrence[ch] = -2; index++; } //return the first appearence once char in current stringstream char FirstAppearingOnce() { index=INT_MAX; char ch='#'; int i; for(i=0; i< 256; i++) { if(occurrence[i] >= 0 && occurrence[i] < index) { index = occurrence[i]; ch = (char)i; } } return ch; }private: int occurrence[256]; int index;};
0 0
- 面试题55:字符流中第一个不重复的字符
- 《剑指Offer》学习笔记--面试题55:字符流中第一个不重复的字符
- 【剑指Offer学习】【面试题55:字符流中第一个不重复的字符】
- 剑指offer_面试题55_字符流中第一个不重复的字符 *
- 剑指offer-面试题55:字符流中第一个不重复的字符
- 《剑指Offer》面试题55:字符流中第一个不重复的字符
- 面试题55:字符流中第一个不重复的字符
- 剑指offer--面试题55:字符流中第一个不重复的字符
- 剑指Offer面试题55:字符流中第一个不重复的字符 Java实现
- 剑指offer-面试题55-字符流中第一个不重复的字符
- 剑指offer 面试题55 字符流中第一个不重复的字符
- 【剑指Offer】面试题55:字符流中第一个不重复的字符
- 剑指offer——面试题55:字符流中第一个不重复的字符
- 面试题63:字符流中第一个不重复的字符
- 面试题55. 字符流中第一个不重复的字符
- 面试题55:字符流中第一个不重复的数字
- 剑指offer 面试题55 字符流中第一个不重复的字符(push_back+resize出问题)
- 剑指offer面试题55 字符流中第一个不重复的字符(Java实现)
- 系统集成方案(一).NET集成方案
- MVC设计模式
- 顺序表应用3:元素位置互换之移位算法
- 关于C++中静态成员函数的理解
- nodejs的后端字符串验证器-validator
- 面试题55:字符流中第一个不重复的字符
- NYOJ722数独
- php-fpm进程数优化方法
- 一致性hash算法
- Vim入门教程
- CSDN-markdown
- 工作了3年的JAVA程序员应该具备什么技能
- 分分钟教你学会 ToolBar 的使用
- 2016第三场多校联盟训练1010