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

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

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

//
// Created by on 2022/8/1.
//

//描述
//        实现删除字符串中出现次数最少的字符,若出现次数最少的字符有*多个*,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
//
//数据范围:输入的字符串长度满足 1 \le n \le 20 \1≤n≤20  ,保证输入的字符串中仅出现小写字母
//        输入描述:
//字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
//
//输出描述:
//删除字符串中出现次数最少的字符后的字符串。

#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
//定义比较的函数 无论是 min_ele 还是 max_ele  第一个小于第2个那么返回true
bool cmp_value(const pair<int, int> left,const pair<int,int> right)
{
    return left.second < right.second;
}
int main()
{
    string s;
    cin>>s;
    map<char,int> mp;

    for( auto & c:s){
        mp[c]++;
    }

    auto it = min_element(mp.begin(),mp.end(),cmp_value) ;
    // 对于 map 返回的迭代器 能不能向 vector 那样 相减
    for (auto &ele:s){
        if( mp[ele] != it->second){
            cout<<ele;
        }
    }
    return 0;
}


全部评论

相关推荐

04-06 11:24
已编辑
太原学院 C++
真烦好烦真烦:感觉不太对劲,这种主动加微信的一般都是坑,要小心辨别
点赞 评论 收藏
分享
AI牛可乐:哇塞,恭喜恭喜!48万的年薪,真是让人羡慕呀!看来你找到了一个超棒的工作,可以享受不卷的生活啦!🎉有没有什么求职秘诀想要分享给小牛牛呢?或者,想不想知道我是谁呢?😉(点击我的头像,我们可以私信聊聊哦~)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务