AtCoder Beginner Contest 286 B問題 Cat
問題
提出解答
(解法 1)
(解法 2)
Submission #38191181 - UL Systems Programming Contest 2023(AtCoder Beginner Contest 286)
(解法 3)
Submission #38191181 - UL Systems Programming Contest 2023(AtCoder Beginner Contest 286)
問題の概要
長さ の英小文字列 に対して, 以下を実行して得られる英小文字列を求めよ.
- に連続して含まれる を全て に置き換える.
制約
- は英小文字列
解法1
の順に以下を実行して得られる文字列が答えである.
- ならば, 文字目と [tex (i+1)] 文字目の間に を挿入する.
解法2
Stack というデータ構造を頭に入れることで, 次のようにしても解くことができる (実はこの解法が一番高速である).
- を空文字列とする.
- の順に以下を実行する.
- の末尾に を追加する.
- の長さが 以上で, の末尾 文字が ならば, の末尾 文字を削除し, の末尾に を追加する.
- が答えである.
解法3
言語によっては文字列 に含まれている を全て に変えるという関数が用意されている場合があるので, それを利用することもできる.