Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Brackets by MedykMatyk
def chooseClosing(bracket):
if(bracket=='['):
return ']'
elif(bracket=='('):
return ')'
elif(bracket=='{'):
return '}'
else:
print("Kappa123, bracket: " + bracket)
return 'x'
def checkio(expression):
index = -1
list = []
for char in expression:
if(char=='(' or char=='[' or char == '{'):
list.append(char)
index = len(list)-1
print("Index: " + str(index) + " Value: " + char)
elif(char==')' or char==']' or char == '}'):
if(index<0):
print("Index < 0 Returns False")
return False
print("Bracket: " + str(list[index]) + " Char: " + str(char))
print("Index: " + str(index))
#print("Bracket ord: " + str(ord(str(list[index]))) + " Char ord: " + str(ord(str(char))))
if(char==chooseClosing(list[index])):
print("Decrementing index")
index-=1
list.pop()
else:
print("Returns False")
return False
print("Finally index: " + str(index))
if(index>=0):
print("Returns False")
return False
print("Returns True")
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"
assert checkio("(((1+(1+1))))]") == False
Nov. 12, 2017