北京网站建设方案建设公司,艺术作品欣赏网站,2022年大事热点新闻,广告公司岗位题目 给定一个字符串s#xff0c;s包括以空格分隔的若干个单词#xff0c;请对s进行如下处理后输出#xff1a;
1、单词内部调整#xff1a;对每个单词字母重新按字典序排序
2、单词间顺序调整#xff1a;
1#xff09;统计每个单词出现的次数#xff0c;并按次数降序…题目 给定一个字符串ss包括以空格分隔的若干个单词请对s进行如下处理后输出
1、单词内部调整对每个单词字母重新按字典序排序
2、单词间顺序调整
1统计每个单词出现的次数并按次数降序排列
2次数相同按单词长度升序排列
3次数和单词长度均相同按字典升序排列
请输出处理后的字符串每个单词以一个空格分隔。
输入描述 一行字符串每个字符取值范围【a-zA-z0-9】以及空格字符串长度范围【11000】
例1
输入
This is an apple
输出
an is This aelpp
例2
输入
My sister is in the house not in the yard
输出
in in eht eht My is not adry ehosu eirsst
#include cstdio
#include iostream
#include unordered_map
#include algorithm
#include string
#include map
#include vectorusing namespace std;bool cmp(pairstring, int it1, pairstring, int it2){if(it1.second it2.second){if(it1.first.length() it2.first.length()){return it1.first it2.first;}else{return it1.first.length() it2.first.length();}}else{return it1.second it2.second;}
}int main(){string word;mapstring, int all_cnt;while(cin word){sort(word.begin(), word.end());all_cnt[word] 1;word.clear();}vectorpairstring, int vecWords(all_cnt.begin(), all_cnt.end());sort(vecWords.begin(), vecWords.end(), cmp);bool first true;int n vecWords.size();for(int i 0; i n;i){pairstring, int use_pair vecWords[i];for(int j 0; j use_pair.second;j){if(first){first false;cout use_pair.first;}else{cout use_pair.first;}}}cout endl;
}