题解 | #删除字符串中出现次数最少的字符#按部就班实现

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

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

#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
void RemoveLeastFrequentChars(string input) {
  //定义一个map,来记录每种字符对应的个数
    unordered_map<char, int> charCount;
    string result;
  //声明最小出现次数,设置其初始值为输入字符串的长度(这是可能的最大的值)
    int minCount = input.size();
	//遍历输入字符串,将字符跟个数记录下来
    for (char ch : input) {
        charCount[ch] = charCount[ch] + 1;//当赋值给ch值的时候,对应的int默认为0
    }
	//遍历map,求出最小出现次数
    for (auto pair : charCount) {
        if (pair.second < minCount) {
            minCount = pair.second;
        }
    }
	//声明一个vector
    vector<char> leastFrequentChars;
  //遍历map,根据minCount,将对应的char压入vector
    for (auto pair : charCount) {
        if (pair.second == minCount) {
            leastFrequentChars.push_back(pair.first);
        }
    }
	//遍历输入字符串
    for (char ch : input) {
	  //如果没有找到最小次数对应的char,就将其压入result字符串
        if (find(leastFrequentChars.begin(), leastFrequentChars.end(),
                 ch) == leastFrequentChars.end()) {
            result.push_back(ch);
        }
    }
//遍历result字符串,即可得到答案
    for (char ch : result) {
        cout << ch;
    }
}
int main() {
    string str;
    cin >> str;
    RemoveLeastFrequentChars(str);

    return 0;
}
 

全部评论

相关推荐

05-30 13:04
已编辑
门头沟学院 算法工程师
智谱和米哈游都是ai大模型agent的业务钱的话还是米更多,几乎翻倍了,有没有老哥是两个公司其中一个的,能问问转正率咋样嘛,我问的hr回答都是做的好就可以转正暑期实习
码农索隆:选米哈游:短期高薪、敢承担风险、具备强创新能力,且愿押注游戏AI赛道。 选智谱:稳定性与行业通用能力积累,接受薪资差距以换取更稳妥的职业基础。
投递北京智谱华章科技等公司6个岗位 > 实习期间如何提升留用概率?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务