Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Brackets by MartynaDziubalka
opening_bracket = ["(", "[", "{"]
closing_bracket = [")", "]", "}"]
def checkio(expression):
opening_list = []
for x in expression:
if x in opening_bracket:
opening_list.append(x)
elif x in closing_bracket:
if len(opening_list) > 0:
last = opening_list.pop()
print(last, opening_bracket.index(last), x, closing_bracket.index(x))
if opening_bracket.index(last) != closing_bracket.index(x):
return False
else:
return False
return len(opening_list) == 0
#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. 28, 2016