괄호 "(" 및 ")"로 구성된 문자열이 있다고 가정합니다. 괄호의 균형이 맞는지 확인해야 합니다.
따라서 입력이 s ="(()())(())"와 같으면 출력은 True
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- num_open :=0
- s의 각 문자 c에 대해 다음을 수행합니다.
- c가 ')'와 같으면
- num_open <0이면
- num_open :=num_open - 1
- 그렇지 않으면
- 거짓을 반환
- 그렇지 않으면
- num_open :=num_open + 1
- num_open <0이면
- c가 ')'와 같으면
- num_open의 역반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution:
def solve(self, s):
num_open = 0
for c in s:
if c == ')':
if num_open < 0:
num_open -= 1
else:
return False
else:
num_open += 1
return not num_open
ob = Solution()
print(ob.solve("(()())(())")) 입력
"(()())(())"
출력
False