字符串个数统计操作,难度不大
#include<iostream>
#include<string>
#include<vector>
#include<unordered_map>
#include <algorithm>
using namespace std;
static bool cmp(const pair<char,int> &p1, const pair<char,int> &p2) {
return p1.second < p2.second;
}
int main(){
string s;
getline(cin, s, '\n');
unordered_map<char,int> u_map1;
unordered_map<char,int> u_map2;
for (int i = 0; i < s.size(); i++) {
if (u_map1.find(s[i]) != u_map1.end()) {
u_map1[s[i]]++;
} else {
u_map1[s[i]] = 1;
u_map2[s[i]] = i;
}
}
vector<pair<char,int>> vec;
for (unordered_map<char,int>::iterator iter = u_map1.begin(); iter != u_map1.end(); iter++) {
vec.push_back(make_pair(iter->first, iter->second));
}
sort(vec.begin(), vec.end(), cmp);
if(vec[0].second != 1) {
cout << "-1" << endl;
} else {
int k = 0;
while (vec[k + 1].second == 1) {
k++;
}
if (k == 0) {
cout << vec[0].first << endl;
} else {
vector<pair<char,int>> vec2;
for(int i = 0; i <= k; i++) {
int temp = u_map2[vec[i].first];
vec2.push_back(make_pair(vec[i].first, temp));
}
sort(vec2.begin(), vec2.end(), cmp);
cout << vec2[0].first << endl;
}
}
return 0;
}

京公网安备 11010502036488号