Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 16.07.2022
Сообщений: 9

Генерация скобочных последовательностей

16.07.2022, 19:32. Показов 7454. Ответов 2

Студворк — интернет-сервис помощи студентам
Привет, помогите разобраться, как решить задачу с помощью цикла. Есть решение с помощью рекурсии, но я хочу разобраться, как решить именно циклом.

Дано целое число n. Требуется вывести все правильные скобочные последовательности длины 2 ⋅ n, упорядоченные лексикографически
В задаче используются только круглые скобки.

Python
1
2
3
4
5
6
7
8
9
10
11
12
def bracket(count, s='', left=0, right=0):
    if left == count and right == count:
        print(s)
    else:
        if left < count:
            bracket(count, s + '(', left + 1, right)
        if right < left:
            bracket(count, s + ')', left, right + 1)
 
 
n = int(input())
bracket(n)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.07.2022, 19:32
Ответы с готовыми решениями:

Вывести количество допустимых скобочных последовательностей
Дана последовательность из символов '(', ')' и '?'. Символ '?' можно заменять на любую скобку. Нужно вывести количество допустимых...

Генерация последовательностей
Мне надо сгенерировать все последовательности длиной n состоящие из 0 и 1. Как я могу это сделать?

Посчитать количество всех возможных правильных круглых скобочных последовательностей длиной n
Дано четное число n. Необходимо посчитать количество всех возможных правильных круглых скобочных последовательностей длиной n. Так как...

2
4 / 4 / 0
Регистрация: 24.07.2022
Сообщений: 6
24.07.2022, 02:29
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n = int(input())
n *= 2
for mask in range(1 << n):
    balance, is_good, answer = 0, True, ''
    for bit in range(n):
        if (mask >> bit) & 1:
            balance += 1
            answer += '('
        else:
            balance -= 1
            if balance < 0:
                is_good = False
                break
            answer += ')'
    if is_good and balance == 0:
        print(answer)
Решение за https://www.cyberforum.ru/cgi-bin/latex.cgi?\mathcal{O}(2n\cdot 2^{2n}).
2
1 / 1 / 0
Регистрация: 16.07.2022
Сообщений: 9
24.07.2022, 08:53  [ТС]
qwe7qwe7, спасибо. Буду разбираться. Побитовые операторы для меня пока тема для изучения)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.07.2022, 08:53
Помогаю со студенческими работами здесь

Генерация правильных скобочных последовательностей
Здравствуйте. Помогите, пожалуйста, написать программу на языке lisp, которая строит все правильные скобочные последовательности длиной n...

Генерация правильных скобочных последовательностей
Доброго времени суток. Есть задача - сгенерировать все правильные скобочные последовательности, количество скобок определяется числом,...

Определить правильность скобочных последовательностей в файле
Коллеги, некорректно отрабатывает алгоритм, помогите пожалуйста Программа должна считывать из файла скобочную последовательность и...

Получить список всех правильных скобочных последовательностей
Правильная скобочная последовательность — это такая последовательность, которая могла быть получена из арифметического выражения...

Найти количество правильных скобочных последовательностей из n скобок, где n четное число.
Найти количество правильных скобочных последовательностей из n скобок, где n четное число. например 6 скобок. 1ая последовательность: ()...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью 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
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru