ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - d477: 古韻之同心鎖 解題心得

Not In My Back Yard | 2018-08-08 11:38:45 | 巴幣 0 | 人氣 137

題目連結


題目大意
給定字串S(長度不超過1993)、M(1<M<S之長度)、N(1 ≦ N ≦ 3)、P(0 ≦ P<100)。而從字串的第一個字元到第M-1個字元為A串,從第M個字母以後為B串。

當N=1時,把S中的小寫字母變為大寫,大寫字母變為小寫,並在最後加上「immorta1」。

當N=2時,刪除S中所有與B相同的子字串,並將所有「1013」替換為「hh4742」。

當N=3時,對於S,在A串中的第|N-M|-1個字元到第|N-M|個字元中間,插入B串,並刪除S原有的B串。

最後在輸出時,對於新的S中的每個字元都要輸出P+1次。


解題思維
N=1時,不需多說,迴圈跑過去判斷一下即可。

N=2,一樣用迴圈跑每個字元並判斷它後面的字元組起來可否形成B字串或是「1013」,然後將所需加在另一個宣告出來的空字串,最後替換調原本字串即可。

N=3,也同樣宣告一個空字串,在迴圈跑過A的時候,把A的字元加進這個字串裡。然後在跑到A的第|N-M|-1個字元到第|N-M|個字元中間,把B加到剛剛宣告的字串裡。便是所求。

最後雙重迴圈跑輸出即可。





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

創作回應

更多創作