s = input()
r = ''
a = 0
b = 0
for b in s:
a = a + b == '('
if not a:
r = r + b
a = a - b == ')'
print(r)
Python
Обьясните код на питоне пожалуйста
Сама идея кода заведомо ошибочна - даже если поправить. Например, для строки:
В самом коде абсолютно бессмысленная ненужная строка:
Это просто одиночный символ ')', не имеющий пары
он выдаст: Это просто одиночный символ '
Но задача - удалить ПАРНЫЕ круглые скобки и их содержимое.В самом коде абсолютно бессмысленная ненужная строка:
b = 0
И в двух местах забыты круглые скобки: a = a + (b == '(')
a = a - (b == ')')
Андрей Павлов
а можешь обьяснить как работает код?
Нечего там объяснять, код просто неправильный и бессмысленый.
Причем объявление b = 0 ни на что не влияет, на каждой итерации b будет равняться очередному символу в строке.
for b in s:
Этот цикл перебирает символы в строке `s`Причем объявление b = 0 ни на что не влияет, на каждой итерации b будет равняться очередному символу в строке.
a + b == '('
Число (а) суммирует со строкой (b), на первой же итерации выдаст ошибку. Арифметику нельзя выполнять между числом и строкой (есть 1 исключение).
Андрей Павлов
а если убрать что б равен 0 то код будет правильным?
я думаю, что в коде забыли дописать чтобы брались именно значения keycodes от введенных строчных значений, а не их буквальные значения (строковые), и тогда идет сравнение что вычитание кейкода буквы из введенного значения равно кейкоду либо открывающей либо закрывающей круглой скобки
зачем это нужно - не понятно; равно как и не понятно зачем инициализировать b нулем, если она используется в цикле в качестве итератора
в данный момент - это бессмысленный код, он всегда будет выдавать последний символ введенного значения
зачем это нужно - не понятно; равно как и не понятно зачем инициализировать b нулем, если она используется в цикле в качестве итератора
в данный момент - это бессмысленный код, он всегда будет выдавать последний символ введенного значения
input_str = input()
result = ''
a = b = 0
for symb in input_str:
a += symb == '('
if not a: # a - False, not a - True
result += symb
a -= symb == ')'
print(result)
Хорошо, код там реально был не рабочий, но я его переделал более менее. Единственный способ применения, как я понял - исключать из текста всё, что написано в скобках Хорошо((Сейчас а - True)), прикольно - вывод будет без скобок (как я понял)
Андрей Альпирман
Так - всё правильно, классический алгоритм подсчета скобок)) Вместо скобок, могли быть кавычки, фигурные скобки и пр...
Похожие вопросы
- Помогите пожалуйста переделать код на Питоне
- Что-то не получается дописать правильно код на Питоне
- Помогите написать код в питон
- Написание кода на питоне
- Пожалуйста напишите код на питоне для новичка, чтобы разобраться
- Помогите исправить код на питоне я постоянно проигрываю в камень ножницы бумага и игра не идёт до трех побед
- Помогите написать код на питоне
- Напишите код в питоне
- Помогите с кодом на питон
- Код в питоне выдаёт неверное значение: 0 Может не так oct использовал?