TopCoder SRM 688 (Div. 2) Medium. ParenthesesDiv2Medium

問題概要

長さ n の括弧列が与えられる。高々 (n+1)/2 回括弧の種類をトグルして、対応の取れた括弧列に変えて欲しい。

解法

元々対応している括弧を除外すると )))))((((( のような括弧列になる。これが分かれば後は )))))((((( を ()()()()() に変えればいい。これは (n+1)/2 回で収まる。

TopCoder SRM 688 (Div. 2) Medium. ParenthesesDiv2M ...


()()()()... になるようにトグルするという解法が見受けられた。これは )()()()( で落ちる。

対応の取れている括弧を除外するテク、割と汎用性が高そう。