白駿9012号:かっこ
質問する
きろくてん
方法
九九
スタック使用率
回答の提出
スタック使用率
import sys
N = int(sys.stdin.readline())
for i in range(N):
# 괄호 문자열 확인
target = sys.stdin.readline().rstrip()
# 스택 생성
stack = []
is_valid = True
# 각 문자열에 대한 탐색
for c in target:
# '여는 괄호'인 경우, 탐색 범위(스택)에 추가
if c == "(":
stack.append(c)
continue
# '닫는 괄호'인데, 스택이 비어 있는 경우 (즉, 매칭할 '여는 괄호'가 없는 경우)
if len(stack) == 0:
is_valid = False
break
# 이번 '닫는 괄호'와 매칭되는 '여는 괄호'를 탐색 범위에서 제외
# (이에 따라 다음에 등장하는 '닫는 괄호'는 이미 매칭된 '여는 괄호'를 탐색할 필요가 없음)
stack.pop()
# 매칭되지 않은 '여는 괄호'가 탐색 범위에 남아 있는지 확인
if len(stack) > 0:
is_valid = False
if is_valid:
print("YES")
else:
print("NO")
簡略化された答え
import sys
N = int(sys.stdin.readline())
for i in range(N):
target = sys.stdin.readline().rstrip()
stack = 0
for c in target:
if c == "(":
stack += 1
else:
stack -= 1
if stack < 0:
break
if stack == 0: print("YES")
else: print("NO")
Reference
この問題について(白駿9012号:かっこ), 我々は、より多くの情報をここで見つけました https://velog.io/@johnny/beak-9012テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol