维护一个长26的数组来记录出现次数,然后遍历我们的字符串,如果字符串中的字符已经出现过,就没有比较的必要,如果这个字符第一次出现,就拿它和后面的元素进行比较,若出现相同元素,则对应位置的出现次数+1,若比较完后,对应位置的出现次数还是1,则证明这是我们所需要的元素,直接输出它即可。
using namespace std;
int main(){
string s;
while(cin>>s){
int hasChara=0;//记录是否出现满足要求的字符。
int a[26]={0};//用于记录出现次数。
for(int i=0;i<s.size();i++){
if(a[s[i]-'a']!=0){
continue;//如果这个数已经出现过,直接pass
}
else {//如果这个数没出现过,就继续往后比较。
a[s[i]-'a']++;
for(int j=i+1;j<s.size();j++){//往后比较,若出现相同元素,对应位置的出现次数加1
if(s[j]==s[i]){
a[s[i]-'a']++;
}
}
if(a[s[i]-'a']==1){//只出现过一次
cout<<s[i]<<endl;
hasChara=1;
break;
}
}
}
if(hasChara==0){
cout<<-1<<endl;
}
}
}