切換
舊版
前往
大廳
主題

ZeroJudge - e501: 00865 - Substitution Cypher 解題心得

Not In My Back Yard | 2019-10-28 22:32:39 | 巴幣 2 | 人氣 154

題目連結:


題目大意:
給定一正整數 T (T < 10),代表有 T 筆測試資料。

每組測資前有一空白列,接著才是測資的內容。一開始的兩列輸入(兩列長度相同)代表轉換表,代表第一列的字串裡字元經過加密後會變為第二列中對應位置的字元。

接著若干列的輸入(碰到空白列為止),代表要加密的明文。請將每一列的輸入依照轉換表加密成密文。(不在轉換表裡的字元不用轉換)



範例輸入:
1

abcdefghijklmnopqrstuvwxyz
zyxwvutsrqponmlkjihgfedcba
Shar's Birthday:
The birthday is October 6th, but the party will be Saturday,
October 5. It's my 24th birthday and the first one in some
years for which I've been employed. Plus, I have new clothes.
So I have cause to celebrate. More importantly, though,
we've cleaned the house! The address is 506-D Albert Street.
Extra enticement for CS geeks: there are several systems in
the house, and the party is conveniently scheduled for 3 hours
after the second CSC programming contest ends (not to mention,
within easy walking distance)!


範例輸出:
zyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyz
Sszi'h Brigswzb:
Tsv yrigswzb rh Oxglyvi 6gs, yfg gsv kzigb droo yv Szgfiwzb,
Oxglyvi 5. Ig'h nb 24gs yrigswzb zmw gsv urihg lmv rm hlnv
bvzih uli dsrxs I'ev yvvm vnkolbvw. Pofh, I szev mvd xolgsvh.
Sl I szev xzfhv gl xvovyizgv. Mliv rnkligzmgob, gslfts,
dv'ev xovzmvw gsv slfhv! Tsv zwwivhh rh 506-D Aoyvig Sgivvg.
Ecgiz vmgrxvnvmg uli CS tvvph: gsviv ziv hvevizo hbhgvnh rm
gsv slfhv, zmw gsv kzigb rh xlmevmrvmgob hxsvwfovw uli 3 slfih
zugvi gsv hvxlmw CSC kiltiznnrmt xlmgvhg vmwh (mlg gl nvmgrlm,
drgsrm vzhb dzoprmt wrhgzmxv)!


解題思維:
這題也是照著題目的要求即可。但是要注意轉換表的那兩列輸入可以有空白字元(同時代表可空)。

剩下要注意的點是,字串可以出現不是 ASCII 的字元(但是轉換表一定是 ASCII 中的字元)。所以看是要跳過直接跳過三個 byte (ZeroJudge 上非 ASCII 字元佔 3 個 byte 而不是佔 4 個),或是全部轉成 UTF-8(Unicode)等等再判斷。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作