题解 | 删除字符串中出现次数最少的字符
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
#include <climits>
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int a[26] = {0};
char s;
vector<char>vec;
while (cin >> s) {
a[s - 'a']++;
vec.push_back(s);
}
int t1 = INT_MAX;
vector<int>record;
for (int i = 0; i < 26; i++) {
if (a[i] > 0 && a[i] < t1) {
t1 = a[i];
record.clear();
record.push_back(i);
}
if (a[i] == t1) {
record.push_back(i);
}
}
int k=record.size()-1;
while(k>=0){
for(int i=0;i<vec.size();i++){
if (vec.size() == 1) {
break;
}
if(k>-1&&vec[i]=='a'+record[k]){
vec.erase(vec.begin()+i);
}
}
k--;
}
for(int i=0;i<vec.size();i++){
cout<<vec[i];
}
cout<<endl;
}
// 64 位输出请用 printf("%lld")
虽史山代码但通过。
查看9道真题和解析
