白駿-44949(Python)-バランスのとれた世界


白駿4949

バランスのとれた世界



前回答えた問題は括弧の対号だけを探していましたが、この問題はアップグレード版です.
文字列の角カッコと小カッコが一致するかどうかの問題を検索します.
一つの線上に存在していても、均等な文字列です.
  • 解答方法

  • 文字列入力を受け入れます.

  • 左かっこ("","[")かどうかを確認します.
    左かっこの場合はスタックに入れます.

  • 右かっこが(")"、""])であるかどうかを確認します.
    右かっこの場合は、スタック内の要素と比較して、かっこがバランスしているかどうかを確認します.

  • 入力した文字列は終了文字です.インスタントラーメンを閉じます.そうしないと、問題で必要な出力が実行されます.
  • while True:
        s = input()
        if s == '.':
            break
        stk = []
        temp = True
        for i in s:
            if i == '(' or i == '[':
                stk.append(i)
            elif i == ')':
                if not stk or stk[-1] == '[':
                    temp = False
                    break
                elif stk[-1] == '(':
                    stk.pop()
            elif i == ']':
                if not stk or stk[-1] == '(':
                    temp = False
                    break
                elif stk[-1] == '[':
                    stk.pop()
        if temp == True and not stk:
            print('yes')
        else:
            print('no')