Мне нужен совет. Мне нужно написать программу на Python, которая запрашивает у пользователя строку S
, состоящую из левых и правых скобок, например (()))(()(
.Обработка строк в Python (в виде списка)
После этого программе необходимо подсчитать количество левых и количество правых скобок входной строки. Например, строка (()))(()
содержит четыре правых скобки и четыре левых скобки. Подсказка: ввести два счетчика, инициализированных с нуля в начале. Затем исследуйте символы строки в цикле. Для приращения текущего символа счетчик left
на 1
f символ (
, в противном случае - приращение на 1
счетчик right
.
Затем мне нужно проверить, является ли строка математической.
Назовем строку math-like, если скобки встречаются как в математической формуле. Например, строки ()
, (())()
, (()())
являются математическими, а строки ))(())((
и ())(()
- нет. Мне нужно написать программу, которая печатает "YES"
, если входная строка является математической и "NO"
в противном случае. Подсказка. В частности, для каждой итерации цикла мне нужно проверить, что значения счетчикови right
удовлетворяют конкретному условию.
Я просто новичок, так что мне действительно сложно писать реализацию этой задачи или, по крайней мере, представить, как это должно выглядеть.
Буду признателен за любую помощь, потому что мне действительно нужно решить эту проблему. Заранее спасибо!
Это известное (и одно из самых главных) применение структуры данных стека. Попробуйте найти «круглые скобки, совпадающие с стеком» –