题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
#include <algorithm>
#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
string str;
unordered_map<char, int> Map;
int Min = 20;
cin >> str;
for(int i = 0; i < str.length(); i++){
Map[str[i]] ++;
}
vector<char> delChar;
for(auto it : Map){
if(it.second < Min){
Min = it.second;
}
}
for(auto it : Map){
if(it.second == Min) delChar.push_back(it.first);
}
for(int i = 0; i < str.length(); i++){
auto it = find(delChar.begin(), delChar.end(), str[i]);
if(it != delChar.end()){
str.replace(i, 1, "");
i--;//删除一个字符后后面的字符会往前移
}
}
cout << str << endl;
return 0;
}

查看12道真题和解析