結果

問題 No.592 括弧の対応 (2)
ユーザー ThetaTheta
提出日時 2022-10-19 18:28:28
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 343 ms / 5,000 ms
コード長 791 bytes
コンパイル時間 82 ms
コンパイル使用メモリ 12,544 KB
実行使用メモリ 38,516 KB
最終ジャッジ日時 2024-06-29 20:12:29
合計ジャッジ時間 1,936 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 32 ms
10,624 KB
testcase_01 AC 343 ms
38,264 KB
testcase_02 AC 335 ms
38,516 KB
testcase_03 AC 326 ms
37,876 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

class Bracket:
    def __init__(self, bracket: str, id_: int) -> None:
        self.__letter = bracket
        self.pair_id = None
        self.id_ = id_

    def is_start(self) -> bool:
        return self.__letter == "("

    def is_end(self) -> bool:
        return self.__letter == ")"


def main():
    _ = input()
    S = input()
    brackets = [Bracket(letter, idx) for idx, letter in enumerate(S, 1)]
    bracket_stack = []

    for bracket in brackets:
        if bracket.is_start():
            bracket_stack.append(bracket)
        else:
            pair_bracket = bracket_stack.pop()
            pair_bracket.pair_id = bracket.id_
            bracket.pair_id = pair_bracket.id_

    for bracket in brackets:
        print(bracket.pair_id)


if __name__ == "__main__":
    main()
0