Вопрос задан 05.07.2023 в 06:14. Предмет Информатика. Спрашивает Динисламов Данил.

Как решить проект " На своих местах " в Python? Дана строка, содержащая буквы и скобки '(', ')',

'[', ']', '{', '}'. Если скобки расставлены правильно (то есть каждой открывающей скобке соответствует закрывающая того же вида, порядок не важен!), то вывести 'yes', иначе выведите 'no'. Помогите пожалуйста!
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Саушин Арсений.

Если скобка открывающая - увеличиваем соответствующий элемент в списке symbols, если закрывающая - уменьшаем. В конце при правильной строке в этом списке должны остаться только нули.


0 0
Отвечает Смирнов Евгений.

Ответ:

Программа на скрине вместе с проверкой на тестовых примерах

Такой вариант правильный т.к учитывает ситуации когда все открытые скобки закрыты, но это сделано не в том порядке.

============

Не забывайте нажать "Спасибо", поставить оценку и, если ответ удовлетворил, то выберите его как "Лучший"

Бодрого настроения и добра!

Успехов в учебе


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно! Чтобы решить эту задачу, можно использовать стек (stack). Стек позволяет проверить правильность расстановки скобок, основываясь на принципе "последний вошел, первый вышел" (Last-In-First-Out, LIFO).

Вот пример решения данной задачи на Python:

python
def check_brackets(string): stack = [] # создаем пустой стек opening_brackets = ['(', '[', '{'] closing_brackets = [')', ']', '}'] for char in string: if char in opening_brackets: stack.append(char) # добавляем открывающую скобку в стек elif char in closing_brackets: if not stack: # если стек пустой, значит, закрывающая скобка без пары return 'no' # проверяем, соответствует ли закрывающая скобка последней открывающей last_opening = stack.pop() if opening_brackets.index(last_opening) != closing_brackets.index(char): return 'no' # проверяем, остались ли несопоставленные открывающие скобки if stack: return 'no' return 'yes' # Пример использования: string = input("Введите строку: ") result = check_brackets(string) print(result)

Вы можете вызвать функцию check_brackets() и ввести строку, которую хотите проверить. Функция вернет 'yes', если скобки расставлены правильно, и 'no' в противном случае.

Пример работы программы:

css
Введите строку: (abc[def]{g}) yes Введите строку: (abc[def]{g}) yes Введите строку: (abc[def]{g) no Введите строку: (abc[def}]{g) no

Надеюсь, это поможет! Если у вас возникнут еще вопросы, пожалуйста, дайте мне знать.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос