Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/163: Рейтинг темы: голосов - 163, средняя оценка - 4.52
29 / 24 / 5
Регистрация: 15.10.2019
Сообщений: 268

Правильная скобочная последовательность

13.01.2020, 22:42. Показов 32943. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! У меня проблема...

Правильной скобочной последовательностью называется строка, состоящая только из символов «скобки» (открывающих "(" и закрывающих ")"), где каждой закрывающей скобке найдётся соответствующая открывающая. Например, () и (()()) — правильные последовательности, а (()(() или )( — нет.

Напишите функцию bracket_check(test_string), которая проверяет, является ли поступившая на вход строка правильной скобочной последовательностью. Если да, она должна печатать YES, в противном случае — NO. Обратите внимание, что пустая строка также является правильной скобочной последовательностью.

Пример 1
Ввод
bracket_check("()")
Вывод
YES
Пример 2
Ввод
bracket_check("(()((")
Вывод
NO

Вот прога с тестом в конце:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def bracket_check(test_string):
    k = 0
    if "(" not in test_string and ")" not in test_string:
        print("YES")
    else:
        for a in test_string:
            if "(" in a:
                k += 1
            elif ")" in a:
                k -= 1
        if k == 0 and test_string[0] == '(' and test_string[-1] == ')':
            print('YES')
        else:
            print('NO')
bracket_check("())(()")
не знаю, как предусмотреть, что каждая скобка закрывается.
сделал только на начале и в конце, и проверку что скобок равное количество.
Помогите, пожалуйста.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.01.2020, 22:42
Ответы с готовыми решениями:

Правильная скобочная последовательность
Правильная скобочная последовательность Рассмотрим последовательность, состоящую из круглых, квадратных и фигурных скобок. Программа...

Правильная скобочная последовательность
Правильная скобочная последовательность Рассмотрим последовательность, состоящую из круглых, квадратных и фигурных скобок. Программа...

Правильная скобочная последовательность
Правильная скобочная последовательность Рассмотрим последовательность, состоящую из круглых, квадратных и фигурных скобок. Программа...

3
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.01.2020, 08:00
Используйте стек. Встретили открывающуюся скобку - положили в стек. Встретили закрывающуюся - берём из стека пару. Если стек пуст - ошибка. Если строка кончилась, а в стеке остались данные - ошибка.

Добавлено через 2 минуты
Пример для строки '())(()'

Python
1
2
3
4
( стек=[]   #кладём в стек
  стек=[(]
) стек=[]  # забрали из стека пару.
) # стек пуст - return False
1
29 / 24 / 5
Регистрация: 15.10.2019
Сообщений: 268
14.01.2020, 08:01  [ТС]
Рыжий Лис, хм, вечером попробую
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
14.01.2020, 12:21
Лучший ответ Сообщение было отмечено billy121 как решение

Решение

Python
1
2
3
4
5
6
7
s = '())(()'
k = 0
for b in s:
    k += [-1, 1][b == '(']
    if k < 0:
        break
print(['NO', 'YES'][k == 0])
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2020, 12:21
Помогаю со студенческими работами здесь

Правильная скобочная последовательность
Правильная скобочная последовательность Напишите программу, которая определяет, является ли строка, состоящая только из символов...

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

Правильная скобочная последовательность
Правильной скобочной последовательностью называется строка, состоящая только из символов «скобки» (открывающих &quot;(&quot; и закрывающих...

Скобочная последовательность
Здравствуйте! Можете пожалуйста помочь решить с использованием функции def без return) Правильной скобочной последовательностью...

Скобочная последовательность
Правильная скобочная последовательность Рассмотрим последовательность, состоящую из круглых, квадратных и фигурных скобок. Программа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru