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

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

https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    string input;
    cin >> input;
    map<char, int> mp;
    for (int i = 0; i < input.size(); i++) { // 利用map存储不同字符的出现次数
        auto it = mp.insert(pair<char, int>(input[i], 1));
        if (it.second == false) {
            it.first->second += 1;
        }
    }
    vector<char> chs;
    int count = 20;
    for (auto it = mp.begin(); it != mp.end(); it++) { // 找到最少的次数
        if (it->second < count) {
            count = it->second;
        }
    }
    for (auto it = mp.begin(); it != mp.end(); it++) { // 找到最小次数对应的字符->放到vector中
        if (it->second == count) {
            chs.push_back(it->first);
        }
    }
    for (int i = 0; i < input.size(); i++) {
        if (find(chs.begin(), chs.end(), input[i]) != chs.end()) { // 移除string中 最小次数对应的字符
            input = input.erase(i, 1);
            i--;
        }
    }
    cout << input;
}

#刷题记录#
全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
10-15 15:00
潍坊学院 golang
跨考小白:这又不是官方
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务