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