题目:在一个字符串中找到第一个只出现一次的字符。如输入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;
}