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

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

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

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    string str;
    while (cin >> str) {
        vector<int> count(26, 0);
        for (int i = 0; i < str.length(); i++) {
            count[str[i] - 'a' ]++;
        }
        int min = count[str[0] - 'a'];
        for (int i = 0 ; i < 26; i++) {
            if (min > count[i] && count[i] > 0) {
                min = count[i];
            }
        }
        for (int i = 0; i < str.length(); i++) {
            if (count[str[i] - 'a'] > min) {
                cout << str[i];
            }
        }
        cout << endl;

    }
    return 0;
}
// 64 位输出请用 printf("%lld")

vector<int> count(26, 0); 统计字符个数,可以用这个vector (26,0) 里面一共有26个位置,然后来计算每个字母出现的次数,这是一个不错的方法。或许必哈希表好用一点。

全部评论

相关推荐

流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
04-16 12:49
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务