剑指offer----字符流中第一个不重复的字符
来源:互联网 发布:淘宝2017双十一 编辑:程序博客网 时间:2024/06/08 01:18
解题思路:
1.用数组来保存字符出现的次数,数组的下标对应相应的字符。
2.用队列来保存第一次出现的字符。
3.从队列的队头开始判断,如果队头字符所对应的出现次数不为1,则删除对头,判断下一个,否则,队头的字符就是第一个不重复的字符。
class Solution{public: int arr[256]; queue<char> q; Solution() { //初始化为0 // memset(arr,0,sizeof(arr)); for(int i=0;i<256;++i) arr[i]=0; } //Insert one char from stringstream void Insert(char ch) { arr[ch-'\0']+=1; //'\0'的ASCII为0,'0'的ASCII为48 if(arr[ch-'\0']==1) //第一次出现 {q.push(ch); } } //return the first appearence once char in current stringstream char FirstAppearingOnce() { while(!q.empty()&&(arr[q.front()-'\0']>=2)) q.pop(); if(q.empty()) return '#'; return q.front(); }};
阅读全文
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-字符流中第一个不重复的字符
- AndroidStudio 2.2以及以上版本 或 Gradle 2.2以及以上 版本V2签名与打渠道包冲突
- C 语言的HelloWorld(printf用法详解)
- [leetcode]: 541. Reverse String II
- 三分法求凸性函数极大极小值
- NYoj 33 蛇形填数
- 剑指offer----字符流中第一个不重复的字符
- LeetCode 31. Next Permutation
- TUTORIAL: MEASURING REVERBERATION TIME
- 原码、反码、补码
- 开发Hive自定义UDF,生成16位时间
- java多线程二(synchronized与volatile)
- Yii2.0 依赖注入(DI)和依赖注入容器详解一
- 【复杂网络学习笔记】4:验证无标度网络的幂律分布特性
- 使用CMD命令编译C源文件