题目描述:
找出字符串中第一个只出现一次的字符
输入描述:
输入几个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例:
输入:
asdfasdfo
aabb
输出:
o
-1
解题思路:
本题用map存放不同字符出现的次数,m的值就是次数,key为字符。从头开始遍历字符串,第一个出现的value为1的字符,就是所要找的值。
测试代码:
#include <iostream> #include <string> #include <map> using namespace std; int main() { string str; while(cin>>str) { map<char,int> m; bool isfind=false; for(int i=0;i<str.size();++i) { m[str[i]]++; } for(int i=0;i<str.size();++i) { if(m[str[i]]==1) { cout<<str[i]<<endl; isfind=true; break; } } if(!isfind) cout<<-1<<endl; } return 0; }