Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Remove Brackets by dotvet33
def is_balanced(expression):
pair, stack = {'{':'}', '(':')', '[':']'}, []
for c in expression:
if c in pair.keys():
stack.append(pair[c])
elif c in pair.values() and (not stack or stack.pop() != c):
return False
return not stack
def remove_brackets(line: str) -> str:
if is_balanced(line): return line
result = ''
for i in range(len(line)):
if len(s := remove_brackets(line[:i] + line[i+1:])) > len(result): result = s
return result
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. 23, 2021