Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Brackets by jtarnowska
def checkio(expression):
list_2 = []
for j in expression:
if j == "(" or j == ")" or j == "[" or j == "]" or j == "{" or j == "}":
list_2.append(j)
if (len(list_2)) % 2 != 0:
return False
list = []
for i in expression:
if i == "(" or i == "[" or i == "{":
list.append(i)
if i == ")":
if list[-1] != "(":
return False
list.pop()
if i == "]":
if list[-1] != "[":
return False
list.pop()
if i == "}":
if list[-1] != "{":
return False
list.pop()
return True
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio("((5+3)*2+1)") == True, "Simple"
assert checkio("{[(3+1)+2]+}") == True, "Different types"
assert checkio("(3+{1-1)}") == False, ") is alone inside {}"
assert checkio("[1+1]+(2*2)-{3/3}") == True, "Different operators"
assert checkio("(({[(((1)-2)+3)-3]/3}-3)") == False, "One is redundant"
assert checkio("2+3") == True, "No brackets, no problem"
Jan. 17, 2017