电话号码分身
程序员文章站
2022-07-10 14:34:03
...
题目描述
继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"), 然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。
输入描述:
第一行是一个整数T(1 ≤ T ≤ 100)表示测试样例数;接下来T行,每行给定一个分身后的电话号码的分身(长度在3到10000之间)。
输出描述:
输出T行,分别对应输入中每行字符串对应的分身前的最小电话号码(允许前导0)。
示例
输入
4
EIGHT
ZEROTWOONE
OHWETENRTEO
OHEWTIEGTHENRTEO
输出
0
234
345
0345
我的代码
n = raw_input()
s = []
def getnum(arr):
tar = 'ZXGWUFSORI'
# num_tar = ['Z','X','W','U','G']
dic = {i:0 for i in tar}
num_dic = {i:0 for i in range(10)}
nums = []
for tmp in arr:
if tmp in tar:
dic[tmp] += 1
if tmp == 'Z':
num_dic[2] += 1
if tmp == 'X':
num_dic[8] += 1
if tmp == 'G':
num_dic[0] += 1
if tmp == 'W':
num_dic[4] += 1
if tmp == 'U':
num_dic[6] += 1
num_dic[7] = dic['F'] - dic['U']
num_dic[5] = dic['R'] - dic['Z']
num_dic[9] = dic['S'] - dic['X']
num_dic[3] = dic['O'] - dic['Z'] - dic['W'] - dic['U']
num_dic[9] = dic['I'] - num_dic[7] - dic['X'] - dic['G']
return num_dic
for i in range(int(n)):
s.append(raw_input())
for i in s:
num = []
numdic = getnum(i)
for j in range(10):
# print numdic[j]
if numdic[j] != 0:
for count in range(numdic[j]):
num.append(j)
num.sort()
istr = ''
for i in num:
istr += str(i)
print istr
通过率:10%
太菜了!