【53】字符流中第一个不重复的字符
来源:互联网 发布:新网域名转入万网 编辑:程序博客网 时间:2024/05/21 17:13
【53】字符流中第一个不重复的字符
- 参与人数:2256
- 时间限制:1秒
- 空间限制:32768K
- 本题知识点: 字符串
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。
例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。
当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。
牛客网题目链接:点击这里
VS2010代码
#include<iostream>#include<vector>using namespace std;class Solution{ vector<char> Strings; vector<int> Nums;public: //Insert one char from stringstream void Insert(char ch) { if(Strings.empty()) //第一个字符出现一次 { Strings.push_back(ch); Nums.push_back(1); } else { //先检验当前是否已有 int i=0; for(; i!=Strings.size(); i++) { //若之前已存在,记录数量 if(Strings[i]==ch) { Nums[i]++; break; } } if(i==Strings.size()) //若未在前面找到 { Strings.push_back(ch); Nums.push_back(1); } } } //return the first appearence once char in current stringstream char FirstAppearingOnce() { // 遍历记录表中, if(Nums.empty()) return '#'; for(int i=0; i!=Nums.size(); i++) { if(Nums[i]==1) return Strings[i]; } return '#'; }};int main(){ Solution s1; char* test="google"; s1.Insert(test[0]); cout<<s1.FirstAppearingOnce()<<endl; s1.Insert(test[1]); cout<<s1.FirstAppearingOnce()<<endl; s1.Insert(test[2]); cout<<s1.FirstAppearingOnce()<<endl; s1.Insert(test[3]); cout<<s1.FirstAppearingOnce()<<endl; s1.Insert(test[4]); cout<<s1.FirstAppearingOnce()<<endl; s1.Insert(test[5]); cout<<s1.FirstAppearingOnce()<<endl;}
—————————
标准思路为:
采用 关联容器 map;一组(key,value)对应的数据。
或者 使用 哈希表的 key-value 这种对应
牛客网通过图片:
0 0
- 【53】字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 55 - 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 【算法】字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符 java
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符串------字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- Q55:字符流中第一个不重复的字符
- Iterator和ListIterator
- Spring MVC拦截器
- Exception in thread "main" java.lang.RuntimeException: Stub!
- java中编码方式的总结
- 黑客入侵里约政府官网抗议奥运:比赛会伤害城市
- 【53】字符流中第一个不重复的字符
- HDOJ 1042 N!
- 使用函数的得墨忒耳法则来解耦
- 杭电多校赛 contests 4 Rower Bo
- 去除数字里多余的零
- FreeMarker 文件中不能调用JAVA静态函数
- elasticsearch源码分析之客户端(三)
- Android Telephony分析(七) ---- 接口扩展(异步转同步)
- 点击ListView中某个Item按钮,并且修改这个item的内容