题解 | 找出字符串中第一个只出现一次的字符
#include <iostream>
#include <map>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
string s;
cin >> s;
string letter;
vector<int> count(s.length(), 0);
for (char c : s) {
if (letter.find(c) == EOF) letter.push_back(c);
count[letter.find(c)]++; //给出现的所有字母按照顺序编号并加入数组
}
int j = -1; //记录第一个出现1次的字母编号,初始化为-1代表没找到
for (int i = 0; i < count.size(); i++) {
if (count[i] == 1) {
j = i;
break;
}
}
if (j != -1)
cout << letter[j]; //按照编号找到字母输出
else
cout << j;
}
// 64 位输出请用 printf("%lld")