0
0 комментариев

Есть задачка на https://www.e-olymp.com/ru/problems/7311

Милхаузу необходимо на завтра решить задачу, и ему нужна Ваша помощь.
Вот задача:

Задана строка, состоящая из скобок. Необходимо превратить ее в
правильную строку, вставляя как можно меньшее количество скобок в
любую позицию (удалять или изменять существующие скобки нельзя).
Правильной является строка, которая удовлетворяет следующим правилам:

  • Пустая строка правильная.
  • Если s правильная, то (s) также правильная.
  • Если s и t правильные, то их конкатенация st правильная.

Например, «(()())», «» и «(())()» правильные строки, а «())(«, «()(» и
«)» — нет.

Входные данные

Задана строка из скобок, которая содержит от 1 до 50 символов
включительно.

Выходные данные

Вывести наименьшее количество скобок, которое следует вставить для
того чтобы входная строка стала правильной.

Получился такой код:

S = input()
a = len(S)
b = 0
c = '('
d = 0
e = 0
f = 0
g = 0
 
while b < a:
    if a[b] == c:
        e += 1
        b += 1
        break
    else:
        d += 1
        b += 1
        break
 
f = d - e
g = abs(f)
print(g)

А там ошибка:

Traceback (most recent call last):
  File "python", line 11, in <module>
TypeError: 'int' object is not subscriptable.

Что делать?


Добавить комментарий