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

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

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

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

Дано целое число 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2022, 19:32
Ответы с готовыми решениями:

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

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

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

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

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

2
4 / 4 / 0
Регистрация: 24.07.2022
Сообщений: 6
24.07.2022, 02:29 2
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  [ТС] 3
qwe7qwe7, спасибо. Буду разбираться. Побитовые операторы для меня пока тема для изучения)
0
24.07.2022, 08:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2022, 08:53
Помогаю со студенческими работами здесь

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

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

Найти количество правильных скобочных последовательностей из n скобок, где n четное число.
Найти количество правильных скобочных последовательностей из n скобок, где n четное число....

Мне нужно найти алгоритм нахождения числа неправильных скобочных последовательностей из 1 правильной
Мне нужен алгоритм в котором из правильносй скобочной последовательности я смогу удаляя идущие...

Рекурсия: генерация правильных скобочных структур длины 2n
Привет , уважаемые форумчане! Рекурсия и Рекурсивные алгоритмы! Искал данное задание негде нету ,...

Рекурсия: генерация всех правильных скобочных структур длины 2n
Число правильных скобочных структур длины 6 равно 5: ()()(), (())(), ()(()), ((())), (()())....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru