题目描述
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入,即多个字符串用回车隔开
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;
}
}
京公网安备 11010502036488号