电话号码分身
时间限制: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;
}