字符串中查找第一个不重复字符
题目描述
在一个字符串中找到第一个没有重复元素的字符并返回。
例:输入:"yellow"
返回:“y”
输入:"tooth"
返回:“h”
输入:“coco”
返回:“”
代码
//找出一个字符串中从头到尾不重复的第一个字符,如“aab”,是‘b’
#include <iostream>
#include <map>
#include <string>
int main()
{
using namespace std;
string str;
cout << "请输入一个字符串:" << endl;
cin >> str;
for (string::iterator its = str.begin(); its != str.end(); ++its)
{
cout << *its << " ";
}
cout << endl;
map<char, int> mp;
for (string::iterator its = str.begin(); its != str.end(); ++its)
{
++mp[*its];//不存在则插入,下标操作,并计数
}
for (map<char, int>::iterator itm = mp.begin(); itm != mp.end(); ++itm)
{
cout << itm->first << ": " << itm->second << endl;
}
cout << endl;
string::iterator its = str.begin();
// map<char,int>::iterator itm=mp.begin();
while (true)
{
if (its == str.end())
{
cout << "没有符合条件的字母!!" << endl;
break;
}
if (mp[*its] == 1)
{
cout << "符合条件的字母是:" << *its << endl;
break;
}
++its;
}
system("pause");
return 0;
}