Code Kata 란, 2인 1조의 구성으로 서로 협력하여 하루에 한 문제씩 해결하는 과제입니다.
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):
# 여기에 코드를 작성해주세요.
while True:
if "()" in string:
string = string.replace("()","")
if "[]" in string:
string = string.replace("[]","")
if "{}" in string:
string = string.replace("{}","")
if "()" not in string and "[]" not in string and "{}" not in string:
break
if string == "":
return True
else:
return False
def is_valid(string):
# 여기에 코드를 작성해주세요.
while "()" in string or "[]" in string or "{}" in string:
if "()" in string:
string = string.replace("()","")
if "[]" in string:
string = string.replace("[]","")
if "{}" in string:
string = string.replace("{}","")
if string == "":
return True
else:
return False
def is_valid(string):
a = {')':'(',']':'[','}':'{'}
b = []
for i in string:
if i in a: #i가 ) , ] , } 중 하나일때
if b[-1:]==[a[i]]: #리스트 b 역정렬순으로 비교하여 닫는 괄호를 만나면
b.pop() #리스트 b에서 빼기
else: #못 만나면
return False
else:
b.append(i) #i가 ( , [ , { 중 하나일때 b에 append
if b==[]: # 모든 괄호가 짝꿍을 만나서 전부 pop되어 리스트 b가 빈 배열일 경우
return True
return False # 짝꿍을 못 만나서 남아있으면 False
def is_valid(string):
# 여기에 코드를 작성해주세요.
open_bracket = ["(", "{", "["]
close_bracket = [")", "}", "]"]
result = []
for s in string :
if s in open_bracket :
result.append(s)
elif s in close_bracket :
if result == [] :
return False
if open_bracket.index(result.pop()) != close_bracket.index(s) :
return False
return len(result) == 0