电话号码分身

时间限制:1秒 空间限制:32768K

题目描述

继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"), 然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。

输入描述:

第一行是一个整数T(1 ≤ T ≤ 100)表示测试样例数;接下来T行,每行给定一个分身后的电话号码的分身(长度在3到10000之间)。

输出描述:

输出T行,分别对应输入中每行字符串对应的分身前的最小电话号码(允许前导0)。

示例1

输入

4
EIGHT
ZEROTWOONE
OHWETENRTEO
OHEWTIEGTHENRTEO

输出

0
234
345
0345
#include<stdio.h>
#include<string.h>
int main()
{
    int t,i,j;
    char str[10010];
    scanf("%d",&t);
    while(t--)
    {
        int s[10]={0};
        scanf("%s",str);
        for(i=0;str[i];i++)
        {
            if(str[i]=='Z')
                s[0]++;
            if(str[i]=='O')
                s[1]++;
            if(str[i]=='W')
                s[2]++;
            if(str[i]=='H')
                s[3]++;
            if(str[i]=='U')
                s[4]++;
            if(str[i]=='F')
                s[5]++;
            if(str[i]=='X')
                s[6]++;
            if(str[i]=='S')
                s[7]++;
            if(str[i]=='G')
                s[8]++;
            if(str[i]=='I')
               s[9]++;
        }
        s[1]=s[1]-s[0]-s[2]-s[4];
        s[3]=s[3]-s[8];
        s[5]=s[5]-s[4];
        s[7]=s[7]-s[6];
        s[9]=s[9]-s[8]-s[5]-s[6];
        while(s[8]--)
            printf("0");
        while(s[9]--)
            printf("1");
        while(s[0]--)
            printf("2");
        while(s[1]--)
            printf("3");
        while(s[2]--)
            printf("4");
        while(s[3]--)
            printf("5");
        while(s[4]--)
            printf("6");
        while(s[5]--)
            printf("7");
        while(s[6]--)
            printf("8");
        while(s[7]--)
            printf("9");
        printf("\n");
    }
    return 0;
}