給一個字串 $s$,有三種字串操作,分別如下。
1. 兩兩交換:將字串內相鄰兩個字元交換,例如字串 $apcsntnu$ 先分組成 $(ap)(cs)(nt)(nu)$,將會交換為 $(pa)(sc)(tn)(un)$,即得到 $pasctnun$。
2. 兩兩排序:將字串內相鄰兩個字元按照字典序排序,字元的字典序為 $a < b < ... < z$,例如字串 $family$ 先分組成 $(fa)(mi)(ly)$,將會交換成 $(af)(im)(ly)$,即得到 $afimly$。
3. 完美重排:假設字串長度為 $n$,將字串內的字元編號為 $0,1,2,...,n−1$,將字串分成兩半為$0 , 1 , ⋯ , \frac{n}{2} − 1 , \frac{n}{2} , \frac{n}{2}+1 , ⋯ , n−1$,並且組合成 $0 , \frac{n}{2} , 1 , \frac{n}{2}+1 , ⋯ , \frac{n}{2}−1 , n−1$。例如 $apcsntnu$ 拆成 $apcs$ 和 $ntnu$,然後交錯成 $anptcnsu$。
給定 $k$ 個操作,請依序操作字串,輸出最後的字串結果。
第一列輸入一字串 $s$ ,字串長度保證為偶數。
第二列輸入一數 $k$,代表接下來有 $k$ 行。
接下來輸入 $k$ 列 $o$,代表操作動作。
輸出操作完的字串。
範例一: apcsntnu 1 2 範例二: ------ facebook 4 2 0 2 1
範例一: anptcnsu 範例二: ------ bocfkoae
$60\;\% : | s | \leq 10 \; , \; k = 1 \; , \; o \in \{0 \; , \; 1 \; , \; 2\}$
$100\;\% : 2\leq | s | \leq 100 \; , \; 1 \leq k \leq 100 \; , \; o \in \{0 \; , \; 1 \; , \; 2\}$
範例二:
操作$2$ : $facebook$ 變為 $fbaocoek$。
操作$0$ : $fbaocoek$ 分組為 $(fb)(ao)(co)(ek)$ 變為 $(bf)(oa)(oc)(ke)$,字串為 $bfoaocke$。
操作$2$ : $bfoaocke$ 變為 $bofcokae$。
操作$1$ : $bofcokae$ 分組為 $(bo)(fc)(ok)(ae)$ 變為 $(bo)(cf)(ko)(ae)$,字串為 $bocfkoae$。
題解。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |