かっこの文字列が与えられた場合、2 種類の操作を行う必要があります。
- 反転 - i 番目の括弧を反対の括弧に変更します (left->right 、 right->left)
- チェック - 文字列がバランスの取れた括弧式であるかどうか
文字列の長さは最大 30000 です。
実行する操作の数は最大 100000 です。
この種の問題を解決するには、どのようなデータ構造を使用する必要がありますか?
セグメント ツリーは適切なデータ構造ですか?
はいの場合、どのように使用する必要がありますか?
例
文字列 = ()((
操作数=4
- フリップ 4 {新しい文字列は ()()}
- check {文字列はバランスが取れています}
- フリップ 2{新しい文字列は ((()} になります)
- check{文字列のバランスが取れていません}