#include<iostream> #include<string> using namespace std; int main() { string str; while(cin>>str){ int i=0; for(i=0;i<str.size();i++){ if(str.find(str[i])==str.rfind(str[i])){ cout<<str[i]<<endl; break; } } if(i==str.size()) cout<<-1<<endl;//找到这个位置就没找到 } return 0; }
用一个记数数组来标记每个字母出现的次数,下标类比ASCII码 #include <iostream> #include <string> #include <cstring> using namespace std; int main() { int count[200]={0}; string str; getline(cin,str); int len=str.length(); int i,j,k=-1; // 如果没有 则返回-1;所以k=-1; for (i=0;i<len;i++) { count[str[i]]++; //统计每个字母出现的次数 } for (j=0;j<len;j++) { if (count[str[j]]==1) { k=j; break; } } cout<<k; return 0; }