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

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

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

这道题题目同样还是应该反着来思考

当你在纠结应该怎样保存如果有多个最小次数的时候

你不妨反过来想,我只要知道最小次数是多少,如果遇到大于这个次数的,全部打印出来就完毕

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

void deleteMin(string s) {
    //vector数组初始化
    vector<int> hash(26,0);
    //找找出次数最少的
    for(int i = 0; i < s.size(); i++) {
        hash[int(s[i]-'a')]+=1;
    }

    int minnum = hash[s[0]-'a'];
    for(int j = 0; j < 26; j++) {
        if(minnum > hash[j] && hash[j] > 0) {
            minnum = hash[j];
        }
    }

    for(int k = 0; k < s.size(); k++) {
    	//在字符s[k]在hash表中出现的次数大于minum,说明s[k]出现的频数更高,那么打印出来
        if(hash[s[k] - 'a'] > minnum) {
            cout<<s[k];
        }
    }
}

int main() {
    string s;
    getline(cin,s);
    deleteMin(s);
    return 0;
}
全部评论

相关推荐

05-25 10:45
门头沟学院 Java
Frank_zhang:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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