华为机试-删除字符串中出现次数最少的字符(较难)

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

http://www.nowcoder.com/questionTerminal/05182d328eb848dda7fdd5e029a56da9

题目描述

实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入,即多个字符串用回车隔开

map存放次数,打擂台找最小次数值,遍历输出非最小次数的字母

#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
int main(){
    string s;
    while(cin>>s){
        map<char,int> mymap;//(易错)放到循环里,不然是所有循环的统计量
        for(char i:s)
            mymap[i]++;//用map存储每个字母出现的次数
        int min=20;
        for(auto i:mymap)
            if(i.second<min)
                min=i.second;//遍历map找到最小次数
        string ans;
        for(auto i:s)//非最小次数对应的字母连接输出
            if(mymap[i]!=min)//(易错)map的count是用来统计是否出现过的
                ans+=i;
        cout<<ans<<endl;
    }
}
全部评论
写得不过呀
点赞 回复 分享
发布于 2021-04-10 10:46

相关推荐

不愿透露姓名的神秘牛友
07-15 17:17
听说过付费实习,没想到这么贵啊我去,要不我给你个腰子吧
哈哈哈,你是老六:这种公司一定要注意啊,不要随便签合同,只要签了后面钱可能回不来,而且你通过法律途径也弄不回
点赞 评论 收藏
分享
码农索隆:卡学历都不行了,开始卡颜值了
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
MinJerous:虽然我一直说 计算机不怎么卡学历 但是至少得一本
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

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