题解 | 删除字符串中出现次数最少的字符
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9?tpId=387&tqId=36847&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37
#include <climits>
#include <iostream>
#include <vector>
using namespace std;
int main() {
string s;
cin >> s;
vector<int>count(26,0); //用于统计每个小写字母出现的次数
//开始统计每个小写字母出现的次数
for(char ch : s){
count[ch - 'a']++; //通过计算字符ch相遇对'a'的位置索引来更新技术数组
}
/*
INT_MAX:是C++中的一种宏定义
用法:在寻找最小值的场景中,会将目标变量设置为 INT_MAX,因为任何实际的有效值都一定会小于 INT_MAX
*/
int MinCount = INT_MAX;
for(int num : count){
if (num > 0 && num < MinCount) {
MinCount = num;
}
}
string res;
for(char c : s){
//删除最少的字符
if (count[c -'a'] != MinCount) {
res += c;
}
}
cout << res << endl;
return 0;
}
// 64 位输出请用 printf("%lld")