結果

問題 No.592 括弧の対応 (2)
ユーザー ThetaTheta
提出日時 2022-10-19 18:28:28
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 277 ms / 5,000 ms
コード長 791 bytes
コンパイル時間 85 ms
コンパイル使用メモリ 10,808 KB
実行使用メモリ 38,940 KB
最終ジャッジ日時 2023-09-12 07:14:16
合計ジャッジ時間 2,155 ms
ジャッジサーバーID
(参考情報)
judge11 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 17 ms
7,800 KB
testcase_01 AC 276 ms
38,744 KB
testcase_02 AC 273 ms
38,940 KB
testcase_03 AC 277 ms
38,296 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