알고리즘 연습 [괄호 확인하기]
괄호 확인하기
문제
is_pair함수는 문자열 s를 매개변수로 입력받습니다.
s에 괄호가 알맞게 짝지어져 있으면 True를 아니면 False를 리턴하는 함수를 완성하세요.
예를들어 s가 (hello)()면 True이고, )(이면 False입니다.
s가 빈 문자열("")인 경우는 없습니다.
나의 풀이
def is_pair(s):
return s.count('(') == s.count(')') and s.rfind('(') < s.rfind(')') and s.find('(') < s.find(')')
통과했는데 문제는 "() )( ()"
이런 경우도 True로 처리한다.
다른 풀이
def is_pair(s):
result = 0
for i in range(len(s)):
if s[i] == '(':
result += 1
if s[i] == ')':
result -= 1
if result < 0 : return False
return result == 0
이런 식으로 풀어야 "() )( ()"
경우도 False 처리