电话号分身python

分享一道找规律题:

题目描述

继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
# -*- coding:utf-8 -*-
#@author:xinxinzhang
'''
思路:1.找出每个英文与数字间的对应关系,在此通过特殊字母
2.统计每个字母出现次数==》把数据写到一个列表
3.根据列表(某数字出现/不出现,连续出现几次)得到最后输出
'''

def fenshen(s):
    arr=[0]*10
    arr[0]=s.count('G')
    arr[2]=s.count('Z')
    arr[4]=s.count('W')
    arr[6]=s.count('U')
    arr[8]=s.count('X')
    arr[5]=s.count('H')-arr[0]
    arr[9]=s.count('S')-arr[8]
    arr[7]=s.count('F')-arr[6]
    arr[1]=s.count('I')-arr[7]-arr[8]-arr[0]
    arr[3]=s.count('O')-arr[2]-arr[4]-arr[6]
    return arr

if __name__=='__main__':
    n=int(input())

    for i in range(n):
        s=input()
        arr=fenshen(s)
        outputs=''

        for i in range(10):
            outputs+=arr[i]*str(i)  #提取出现的数字
        print(outputs)

猜你喜欢

转载自blog.csdn.net/zuanfengxiao/article/details/80276485