TIL83. CodeKata (8)
문제
s는 여러 괄호들로 이루어진 String 인자입니다.
s가 유효한 표현인지 아닌지 true/false로 반환해주세요.
종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다. 아래의 경우 유효합니다.
한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다.
괄호 순서가 맞아야 한다.
예를 들어 아래와 같습니다.
s = "()"
return true
s = "()[]{}"
return true
s = "(]"
return false
s = "([)]"
return false
s = "{[]}"
return true
나의 풀이
def is_valid(string):
if len(string) % 2 ==1:
return False
else:
arr1 = ['(','[','{']
arr2 = [')',']','}']
for i in range(len(arr1)):
if arr1[i] in string and arr2[i] in string:
a = string.find(arr1[i])
b = string.find(arr2[i])
if a + 1 == b or (string[0] == a and string[-1] == b) or a+3 == b:
string.replace(arr1[i],'')
string.replace(arr2[i],'')
else:
return False
else:
return False
def is_valid(string):
if len(string) % 2 ==1:
return False
else:
arr1 = ['(','[','{']
arr2 = [')',']','}']
for i in range(len(arr1)):
if arr1[i] in string and arr2[i] in string:
a = string.find(arr1[i])
b = string.find(arr2[i])
if a + 1 == b or (string[0] == a and string[-1] == b) or a+3 == b:
string.replace(arr1[i],'')
string.replace(arr2[i],'')
else:
return False
else:
return False
풀면서 분명 통과가 될 것이라고 생각을 했는데...
테스트 케이스 하나가 통과 되지 못했다..
self.assertEquals(is_valid('(())[]'),True)
AssertionError: False != True
Author And Source
이 문제에 관하여(TIL83. CodeKata (8)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dnjs0718/TIL82.-CodeKata-8저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)