电话号码分身

题目描述

继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<iostream> #include<vector> #include<algorithm> using namespace std; int main(){ int N; cin >> N; for(int i=0;i<N;i++) { char a[10000]; cin>> a; int num[10]={0,0,0,0,0,0,0,0,0,0}; for(int j=0;a[j];j++) { if(a[j]=='Z') num[2]++;//0 else if(a[j]=='W') num[4]++;//2 else if(a[j]=='U') num[6]++;//4 else if(a[j]=='X') num[8]++;//6 else if(a[j]=='G') num[0]++;//8 else if(a[j]=='U') num[6]++; else if(a[j]=='O') num[3]++;//1+0+2+4 else if(a[j]=='R') num[5]++;//3+0+4 else if(a[j]=='F') num[7]++;//5+4 else if(a[j]=='S') num[9]++;//7+6 else if(a[j]=='I') num[1]++;//9+5+6+8 } num[3]=num[3]-num[6]-num[2]-num[4]; num[5]=num[5]-num[2]-num[6]; num[7]=num[7]-num[6]; num[9]=num[9]-num[8]; num[1]=num[1]-num[7]-num[8]-num[0]; for(int t=0;t<10;t++) { while(num[t]--) { cout<<t; } }         cout << endl; } return 0; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值