Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
BFS solution in Clear category for Remove Brackets by Sim0000
from collections import deque
def remove_brackets(formula):
def brackets(s):
old = ''
while s != old:
old, s = s, s.replace('()', '').replace('[]', '').replace('{}', '')
return s == ''
q = deque([(formula, 0)])
while q:
s, last = q.popleft()
if brackets(s): return s
for i in range(last, len(s)):
q.append((s[:i] + s[i+1:], i))
return ''
if __name__ == '__main__':
print("Example:")
print(remove_brackets('(()()'))
# These "asserts" are used for self-checking and not for an auto-testing
assert remove_brackets('(()()') == '()()'
assert remove_brackets('[][[[') == '[]'
assert remove_brackets('[[(}]]') == '[[]]'
assert remove_brackets('[[{}()]]') == '[[{}()]]'
assert remove_brackets('[[[[[[') == ''
assert remove_brackets('[[[[}') == ''
assert remove_brackets('') == ''
print("Coding complete? Click 'Check' to earn cool rewards!")
June 5, 2020
Comments: