题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
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; }