面试题:字符串中查找第一个不重复字符
题目描述
在一个字符串中找到第一个没有重复元素的字符并返回。
例:输入:"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; }