题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4
//记录一下,最开始想的是出现重复的位置给他加上一个大数然后越搞越乱
//然后反应过来,重复了就直接标记为-1抛弃掉
//然后还忽略了一个没有结果的情况,我返回的是-1,需要判断一下只有是0-25的数才输出字符
#include<iostream>
#include<string>
#include<vector>using namespace std;
int main(){
string inputstr;
cin >> inputstr;
vector<int> vec(26,0);
int nums = 0;
for(int i = 0;i<inputstr.size();++i){
if(vec[int(inputstr[i]-'a')] == 0)vec[int(inputstr[i]-'a')] = ++nums;
else vec[int(inputstr[i]-'a')] = -1;
}
int min = nums,res = -1,i;
for(i = 0;i<vec.size();++i){
if(vec[i] == 0 || vec[i] == -1)continue;
if(min>=vec[i]){
min = vec[i];
res = i;
}
}
if(res == -1)cout << -1 << endl;
else cout << char(res+'a') << endl;
return 0;
}