有一個字串加密系統,對於一個長度為 $n$ 的字串 $S$ 和一個長度為 $n$ 01 字串 $e$,會產生一個加密過後的字串 $T$,其中加密流程為以下兩個步驟:
1. 如果字串 e 中 1 的出現次數是偶數,則直接進第二步驟,出現次數是奇數則將字串 $S$ 平分成兩等份,兩份順序交換後再接起來,如果字串長度是奇數,則最中間的字元不動位置。
2. 讓 $i$ 從 $1$ 到 $n$ 迭代,如果 $e[i] = 0$ 就將 $S$ 的第一個字元切掉並接到字串 $T$ 的最後一個字元,如果 $e[i] = 1$ 就將 $S$ 的最後一個字元切掉並接到字串 $T$ 的最後一個字元。
以範例 1 為例,$e$ 陣列為 10110,其中 $1$ 出現的次數為奇數,因此需要交換字串 $S$ 從 BCAAD 變為 ADABC。接下來執行第二階段,其中過程如下。
給由 $m$ 個 01 字串的加密表和按照順序加密原字串後得到加密過後的字串,請嘗試還原出原本的字串。
第一行輸入兩個數字 $m$, $n$ $(1 \le m, n \le 100)$,接下來有 $m$ 個長度為 $n$ 的 01 字串,最後輸入一個長度為 $n$ 的加密字串, 字串均由大寫字母組成。
子題配分
輸出解密後的字串。
1 5 10110 CABAD
BCAAD
3 6 111110 101101 000000 RETYWQ
QWERTY
範例測資一,如題目所述
範例測資二過程如下
e = 111110,$1$ 出現的數量為奇數次,因此需要將字串 "QWERTY" 切半翻轉成 "RTYQWE",經過 01 字串的轉換後會得到 "EWQYTR"。
e = 101101,$1$ 出現的數量為偶數次,因此不用翻轉字串,經過 01 字串的轉換後會得到 "RETYWQ"。
e = 000000,$1$ 出現的數量為偶數自,因此不用翻轉字串,經過 01 字串的轉換後會得到 "RETYWQ"。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
41170 | glps1004@gma ... (Ian) | i400 | 187 | 2024-07-08 19:26 | |
40856 | aa0939166015 ... (咖波) | i400 | 166 | 2024-06-15 23:28 | |
34510 | willy633526@ ... (ByTech) | i400 | 579 | 2023-03-26 22:27 | |
34339 | luray0601@gm ... (QWERTYPIG) | i400 | 872 | 2023-03-11 21:40 | |
33786 | tttest (testunknown) | i400 | 871 | 2023-02-03 12:04 |