吉比特 字母数字混合排序 字符串

题目描述

输入一串字符,包含数字[0-9]和小写字母[a-z],要求按数字从小到大、字母从a到z排序,并且所有数字排在字母后面

输入描述:

一串字符

输出描述:

按规则排序的一串字符

示例1

输入

a31bz

输出

abz13
#include<iostream>
#include<algorithm>
using namespace std;
int cnt[10];
int w[30];
int main()
{
    string s;
    while(cin>>s)
    {
        int len=s.length();
        for(int i=0;i<len;++i)
        {
            if(s[i]>='0' && s[i]<='9')
            {
                cnt[s[i]-'0']++;
            }else if(s[i]>='a' && s[i]<='z')
            {
                w[s[i]-'a']++;
            }
        }
        for(int i=0;i<26;++i)
        {
            while(w[i]--)
            {
                printf("%c",'a'+i);
            }
        }
        for(int i=0;i<10;++i)
        {
            while(cnt[i]--)
            {
                cout<<i;
            }
        }
        cout<<endl;
    }
    return 0;
}
Last modification:January 12th, 2020 at 12:38 am
如果觉得我的文章对你有用,请随意赞赏