Python

Пайтон мучаюсь уже долго потому что уже 2 день на пайтоне но фига неправилно пишу помогите пж

Дмитрий считает, что когда текст пишут в скобках (как вот тут, например), его читать не нужно. Вот и надумал он существенно укоротить время чтения, написав программу, которая будет удалять все, что расположено внутри скобок.
Помогите ленивому Диме разработать алгоритм, который будет удалять все, что внутри скобок и сами эти скобки, возвращая очищенный текст (скобки могут быть вложенными).
Программа на входе принимает строки со скобками, а выводит строки без скобок и их содержимого.
*При разработке алгоритма решения нужно учесть, что самая последняя открывающая скобка должна обязательно иметь после себя закрывающую. Таким образом, алгоритм будет работать до тех пор, пока в тексте есть оба вида скобок.
Тесты
1. Падал(лишнее (лишнее) лишнее) прошлогодний снег (лишнее)
2. (лишнее(лишнее))Падал прошлогодний (лишнее(лишнее(лишнее)))снег
Результат выполнения
1. Падал прошлогодний снег
2. Падал прошлогодний снег
 import re
s, p = input(), ''
while s != p: s, p = re.sub(r'\([^()]*\)', '', s), s
print(s)
Юрий Юрьевич
Юрий Юрьевич
56 109
Лучший ответ
Так а зачем изучать, если не понимаешь? Тем более пайтон
ЮЖ
Юрий Жуков
77 076
Вариант чисто на Питоне
 #!/usr/bin/python3 

def remove_round_bracket( s ):
result = ""
start_idx = 0
# Если флаг False то мы вне скобок, а если True то внутри
rb_flag = False
# Счетчик скобок
rb_count = 0
# Индекс в строке
idx = 0
while idx < len(s):
if rb_flag == False:
# Если найдена открывающая скобка то:
if s[idx] == '(':
# Увеличим счетчик скобок на 1
rb_count += 1
# Скопируем часть строки от начала и до скобки
result = result + s[start_idx:idx]
# Изменим флаг нахождения внутри скобок
rb_flag = True
# Мы уже внутри скобок
else:
# Если найдена открывающая скобка то:
if s[idx] == '(':
# Увеличим счетчик скобок на 1
rb_count += 1
# Если найдена закрывающая скобка то:
elif s[idx] == ')':
# Уменьшим счетчик скобок на 1
rb_count -= 1
# Это была последняя закрывающая скобка
if rb_count == 0:
rb_flag = False
# Скорректируем новую стартовую позицию
start_idx = idx + 1
# Увеличим индекс
idx += 1;
# Скопируем часть строки от начала и до скобки
result = result + s[start_idx:idx]
return result

# Удаляет из строки текст в круглых скобках. Скобки могут быть вложенными.
data = [ "Строка (со скобками)",
"Падал(лишнее (лишнее) лишнее) прошлогодний снег (лишнее)",
"(лишнее(лишнее))Падал прошлогодний (лишнее(лишнее(лишнее)))снег" ]

for line in data:
print( "Строка до: '"+line+"'" )
print( "Строка после: '"+remove_round_bracket(line)+"'")
Пример работы:
 Строка до: 'Строка (со скобками)' 
Строка после: 'Строка '
Строка до: 'Падал(лишнее (лишнее) лишнее) прошлогодний снег (лишнее)'
Строка после: 'Падал прошлогодний снег '
Строка до: '(лишнее(лишнее))Падал прошлогодний (лишнее(лишнее(лишнее)))снег'
Строка после: 'Падал прошлогодний снег'
Сергей Акулич
Сергей Акулич
9 624
Сергей Усманов мой вариант
 FILTER0, FILTER1 = '(', ')'  
def remove_round_bracket(INPUT):
l = len(INPUT)
trues = [True]*l
_pairs, _braces = [], []
for i in range(l):
letter = INPUT[i]
if letter in FILTER0:
_braces.append([i])
elif letter in FILTER1 and len(_braces):
pair = _braces.pop()
pair.append(i)
_pairs.append(pair)
for p in _pairs:
s, e = p
rl = e-s+1
trues[s:(e+1)] = [False]*rl
return(''.join([INPUT[i] for i in range(l) if trues[i]]) )