题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
http://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
while(cin>>s){
int count[256]={0};
bool res=false;
for(int i=0;i<s.size();i++){
count[s[i]]+=1;
}
for(int i=0;i<s.size();i++){
if(count[s[i]]==1){
cout<<s[i];
res=true;
break;
}
}
if(res==false){
cout<<-1;
}
}
return 0;
}
思路: 1.定义一个长度为256的数组并初始化为0,同时定义一个布尔值res来判断是否找到存在目标字符; 2.遍历字符串,采用从字符的ascii码到数组元素的映射来统计出现次数; 3.遍历字符串查找字符出现次数是否为1,找到的话输出该字符并令res=true,然后break结束查找; 4.判断如果res=false的话说明没找到,输出-1。