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-15 03:05
门头沟学院 Java
CADILLAC_:凯文:我的邮箱是死了吗?
点赞 评论 收藏
分享
10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务