题目描述:
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
本题含有多组样例输入。
输入描述:
Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。
输出描述:
Lily的所有图片按照从小到大的顺序输出
示例:
输入:
Ihave1nose2hands10fingers
输出:
0112Iaadeeefghhinnnorsssv
解题思路:
输入字符串,建立一个map容器,统计每个字符出现的次数,map会自动排序,输出的时候挨个输出即可,输出次数取决于该键对应的值。
测试代码:
#include <iostream> #include <string> #include <vector> #include <map> using namespace std; int main() { string str; while(cin>>str) { map<char,int> m; for(int i=0;i<str.size();++i) { m[str[i]]++; } for(auto i=m.begin();i!=m.end();++i) { for(int j=0;j<i->second;++j) { cout<<i->first; } } cout<<endl; } return 0; }