BOJ 9012括弧


https://www.acmicpc.net/problem/9012
2秒、128 MBメモリ
input :
  • 整数T
  • 括弧文字列(2<=文字列<=50)
  • output :
  • 正しい括弧文字列であれば「YES」または「NO」
  • 条件:
  • 「()」と「()」はそれぞれVPS
  • 「()」、「()」、「()」および「()」はいずれも非VPS文字列
  • leftを使用して、この文字列がペアになっているかどうかを確認できます.
    「(」が表示された場合、left+=1
    ")が表示されたらleft-=1で計算します.
    leftに負数の部分が現れるとペアにならないのでbreakでflagを反転します.
    または、leftのみが表示される場合、leftは最後まで実行され、0ではない場合、常にペアにはなりません.
    flag,left個の数で出力します
    import sys
    
    n = int(sys.stdin.readline())
    
    for i in range(n):
        string = sys.stdin.readline().strip()
        left = 0
        right = 0
        flag = 1
        for item in string:
            if item == '(':
                left += 1
            else:
                left -= 1
                if left < 0:
                    flag = 0
                    break
    
        if flag:
            if left != 0:
                print("NO")
            else:
                print("YES")
        else:
            print("NO")