d586: 哈密瓜美語
內容
「什麼?指導老師哈密瓜…這哪招阿!」
這不是重點,反正哈密瓜老師出來開幼兒美語補習班了。
哈密瓜老師為了加強小朋友的數字和英文字母對應能力,
他出了一道邪惡的謎題…
一般英文字母的排列是 abcdefghijklmnopqrstuvwxyz(a~z)
有種密碼是這樣的,
假如明文是 16 5 14 7 21 9 14,
那麼它的密文就是 penguin。
為什麼呢?因為 p 是第 16 個英文字母,e 是第五個,n 是第 14 個…以此類推
現在邪惡的哈密瓜把英文字母的排列給洗亂了,
並且出了雙向的謎題。
如果題目是由數字組成,就要解出英文單字
如果題目是由小寫字母組成,就要解出數字的總合
假設現在的字母排列是:jvkixcpomtfgdyhesrlzbqnwua
那麼整理出對應表如下:
1 j
2 v
3 k
4 i
5 x
6 c
7 p
8 o
9 m
10 t
11 f
12 g
13 d
14 y
15 h
16 e
17 s
18 r
19 l
20 z
21 b
22 q
23 n
24 w
25 u
26 a
數字:7 16 23 12 25 4 23 答案是 penguin
英文:p e n g u i n 答案是 7+16+23+12+25+4+23=110
–
好了,照慣例哈密瓜的智商有限,現在他自己也解不出他自己出的謎題了。
輸入
本題有兩個測資點。
第一行有整數 n(1<n<=100),表示總共有幾條謎題
接下來的 n 行,每行有整數 m(1<=m<=10000),
表示接下來有 m 個數字/英文字母要解密。
每個數字或是英文字母會以空格隔開,
並且數字一定在 1~26(包含)
英文字母必定是小寫
並且請注意…
如果題目是數字,程式要轉換成英文字母時,
必須使用的字母排列是:mjqhofawcpnsexdkvgtzblryui
相反的,如果題目給你英文字母,要算出對應數字總和時,
必須使用這套字母排列:uzrmatifxopnhwvbslekycqjgd
2
7 p e n g u i n
7 10 13 11 18 25 26 11
輸出
對應連續的數字,請按照規則排列輸出英文單字(連續無空格)
對應連續的字母,請按照規則排列輸出數字總合
(對範例測資來說,第一筆輸入 penguin 對應的數列是
11 19 12 25 1 7 12,總和是 87)
87
penguin
解題思路
依照題意建好數轉英、英轉數的表,而由於英轉數中的英是被打亂過的哈密瓜英文,所以再用一個正常序列的指標陣列去映射哈密瓜英文(ex : 第 0 項(正常的'a')就映射到哈密瓜英的第 4 項 (哈密瓜英文的'a'))。
建好表之後依照題意做字串處理和判斷即可。
完整程式碼
AC (2ms, 116KB)
|