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

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

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

#include <bits/stdc++.h>
using namespace std;

int main() {
    string a;
    while (cin >> a) {
        map<char, int> umci;
        for(const char e : a) {
            if (umci.find(e) == umci.end()) {
                pair<char, int> pr;
                pr.first = e;
                pr.second = 1;
                umci.insert(pr);
            } else {
                umci[e]++;
            }
        }

        // 字符指定总长度+1
        int min = 21;
        // 最少次数 min
        for (const auto e : umci) {
            min = std::min(min, e.second);
        }

        // get chars that second is min        
        for (auto it = umci.begin();it != umci.end();it++) {
            if (min == it->second) {
                char ch1 = it->first;
                // 在字符串中删除指定字符的特定方式
                a.erase(remove(a.begin(), a.end(), it->first), a.end());
            }
        }
        cout << a << endl;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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