[伯俊]9012かっこ


🦧ソース


白駿9012

🦧コンセプト


🔥 スタック(スタック)
スタックは一時的にデータを格納する際に用いられるデータ構造であり,後入先出(LIFO)方式を採用している.
Pythonはスタックがほとんどないのでlistを使います.
スタックにデータを入れる操作をpushと呼びます.リストを利用するのでlistです.append(a)を使用します.
これに対して,スタック内のデータを削除する操作をpop,listと呼ぶ.pop(a)を活用する.
🔥 アイデア
psに入力されたカッコがvpsになる条件は、2つのカッコが次のようにペアリングされることです.()私が目で括弧を見て判断したとき、真ん中から正しいかどうかを探しました.△もちろん、この方法自体が間違っている可能性があります.それをコードで表現する能力がなく、あまり効率的ではないと思ったので、まず条件に合った友達から削除することにしました.
この仮定に基づいて、「(」を入力してstackに保存し、別の「」を入力した場合、stackを空にします.最終的にvpsになりたいなら、スタックには何も存在しないでいいです.

🦧コード#コード#


🔥 マイコード
import sys

n = int(sys.stdin.readline())

for _ in range(n):
    stack = []
    ps = sys.stdin.readline()
    for p in ps:
        if p == '(':
            stack.append(p)
        elif p == ')':
            if len(stack) > 0:
                stack.pop()
            else:
                print("NO")
                break
    else:
        if len(stack) == 0:
            print("YES")
        else:
            print("NO")