2017 小公尺 電話號碼分身

2022-07-08 03:12:15 字數 1680 閱讀 4533

繼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

234345

0345

只有0(zero)有字母z,也就是說,有多少個z就有多少個0。同理,只有2有字母w,4有字母u,6有字母x,8有字母g。只有6和7有字母s,s的個數減去6的個數為7的個數。

同理,只有5和7有v等等。計算數字個數如下:

def

originaldigits(s):

result = [0] * 10result[0] = s.count("z"

)    result[2] = s.count("w"

)    result[4] = s.count("u"

)    result[6] = s.count("x"

)    result[7] = s.count("

s") - result[6]

result[5] = s.count("

v") - result[7]

result[1] = s.count("

o") - result[0] - result[4] - result[2]

result[9] = (s.count("

n") - result[1] - result[7]) // 2result[8] = s.count("

i") - result[5] - result[6] - result[9]

result[3] = s.count("

h") - result[8]

t, resstr = "", ""

for i, r in

enumerate(result):

t += r *str(i) # 將所有數字排成一排

for i in

t: # 減8逆推回原數字,resstr為原數字

if int(i) >= 8:

resstr += str(int(i) - 8)

else

:            resstr += str(int(i) + 10 - 8)

return

''.join(sorted(resstr)) #原數字排序後(返回列表)jion為字串 if

__name__ == '

__main__':

n =int(input())

for i in

range(n):

strnumber =input()

print(originaldigits(strnumber))

電話號碼分身

時間限制 1秒 空間限制 32768k 繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打亂這些字母...

電話號碼分身

繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打亂這些字母,所生成的字串即為 號碼對應的分身。第一...

電話號碼分身

題目描述 繼miui8推出手機分身功能之後,miui9計畫推出乙個 號碼分身的功能 首先將 號碼中的每個數字加上8取個位,然後使用對應的大寫字母代替 zero one two three four five six seven eight nine 然後隨機打亂這些字母,所生成的字串即為 號碼對應的...