Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
native_brackets solution in Clear category for Brackets by Jon_Red
def checkio(expression):
brackets,stack={'}':'{',')':'(',']':'['},['stack']
for x in expression:
if x in brackets.values():stack.append(x)
if x in brackets and brackets[x]!=stack.pop():return False
return stack==['stack']
if __name__=='__main__':
# self-checks
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'
Aug. 2, 2020