题解 | 删除字符串中出现次数最少的字符

删除字符串中出现次数最少的字符

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")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务