《剑指offer》字符流中第一个不重复的字符
来源:互联网 发布:四川广电网络套餐介绍 编辑:程序博客网 时间:2024/04/28 08:41
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目链接:http://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720?rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。
思路
我们使用哈希表来标记各个字符对应的状态
-1:表示没有出现过
-2:表示出现过多次
0~n:表示出现的位置
然后我们再一遍循环找到位置最小的即可
class Solution{public://Insert one char from stringstreamSolution():index(0){for(int i = 0; i<256; ++i)state[i] = -1;}void Insert(char ch){if(state[ch]==-1)state[ch] = index;else if(state[ch]>=0)state[ch] = -2;++index;}//return the first appearence once char in current stringstreamchar FirstAppearingOnce(){char ch = '#';int minIndex = index;for(int i = 0; i<256; ++i){if(state[i]>=0 && state[i]<minIndex){minIndex = state[i];ch = (char)i;}}return ch;}private:int state[256];int index;};
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-字符流中第一个不重复的字符
- js 清空数组的方法
- CentOS下非root 源码安装PostgreSQL
- Windows消息队列,UI线程,窗口以及消息处理方式总结
- Android:View绘制流程
- SQL练习题9月9号
- 《剑指offer》字符流中第一个不重复的字符
- oracle查询语句大全
- 翻转句子中单词的顺序(2015年9月13日)
- HDU 5172 GTY's gay friends
- 计算某天在本年中为第几天
- Qt Creator:连接数据库和初步了解QSqlTableModel
- NOIP2010 关押罪犯
- 2015 ICPC 长春网赛 解题报告
- Google《Android性能优化》学习笔记链接