华为机试---找出字符串中第一个只出现一次的字符 、有两个出现一次的面试题的_i++

 


#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{
string str;
while(getline(cin,str))
{
map<char,int>res;
for(int i=0;i<str.size();i++)
{
res[str[i]]++;
}
for(int i=0;i<str.size();i++)
{
if(res[str[i]]==1)
{
cout<<str[i]<<endl;
break;
}
//如果到最后一个元素还没有找到跳出,则输出“-1”
if(i==str.size()-1)
cout<<"-1"<<endl;
}

}


}

有两个出现一次的数字,其余全部出现两次

剑指offer类似题: