在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

来源:互联网 发布:mac 安全设置 编辑:程序博客网 时间:2024/06/05 01:00
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。  

分析:这道题是2006年google的一道笔试题。采用容器map很好的解决了这个问题,first存放字符,second存放数量

#include <iostream>#include <map>#include <string>using namespace std;void GetcharCount( const string& str ){map<char, int> m;for(int i=0; i<str.length(); ++i){if(m.find(str[i]) == m.end()){m.insert(std::pair<char,int>(str[i],1));}else{m[str[i]]++;}}map<char,int>::iterator iter = m.begin();for( ; iter != m.end(); ++iter ){if( iter->second == 1 ){cout << iter->first << endl;break;}}}int main(){string str;cin >> str;GetcharCount(str);    return 0;}


原创粉丝点击