Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Remove Brackets solution in Clear category for Remove Brackets by sanjieyu
from functools import lru_cache
@lru_cache()
def remove_brackets(brackets: str) -> str:
if is_balanced(brackets):
return brackets
return max((remove_brackets(brackets[:i] + brackets[i + 1:]) for i in range(len(brackets))), key=len)
def is_balanced(line: str) -> bool:
old = None
while line != old:
old, line = line, line.replace('()', '').replace('[]', '').replace('{}', '')
return not line
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('') == ''
assert remove_brackets('[(])') == '()'
print("Coding complete? Click 'Check' to earn cool rewards!")
Aug. 20, 2021