题解 | 删除字符串中出现次数最少的字符
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
#include <iostream> #include <string> #include <vector> using namespace std; int main() { string str; while (cin >> str) { vector<int> count(26, 0); for (int i = 0; i < str.length(); i++) { count[str[i] - 'a' ]++; } int min = count[str[0] - 'a']; for (int i = 0 ; i < 26; i++) { if (min > count[i] && count[i] > 0) { min = count[i]; } } for (int i = 0; i < str.length(); i++) { if (count[str[i] - 'a'] > min) { cout << str[i]; } } cout << endl; } return 0; } // 64 位输出请用 printf("%lld")
vector<int> count(26, 0); 统计字符个数,可以用这个vector (26,0) 里面一共有26个位置,然后来计算每个字母出现的次数,这是一个不错的方法。或许必哈希表好用一点。