分享一道找规律题:
题目描述
继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)