|
0 / 0 / 0
Регистрация: 30.10.2014
Сообщений: 1
|
|
Проверить, является ли введенная скобочная последовательность правильной (рекурсия)24.11.2014, 00:03. Показов 5660. Ответов 13
Метки нет (Все метки)
Дано слово из круглых и фигурных скобок. Требуется определить является ли введенное выражение правильным (Надеюсь не требуется объяснять что куда). Надо использовать рекурсию, для выделения подвыражений между одним типом скобок. В общих чертах алгоритм понимаю: берем первую скобку -> ищем ее закрывающую, все что между ними так же по рекурсии. Но код упорно не пишется
Подскажите как правильно реализовать.Заранее спасибо
0
|
|
| 24.11.2014, 00:03 | |
|
Ответы с готовыми решениями:
13
Проверить, является ли введенная последовательность чисел рядом Фибоначчи
Используя стек, проверить, является ли правильной скобочная последовательность |
|
36 / 30 / 31
Регистрация: 16.11.2014
Сообщений: 90
|
||||||
| 24.11.2014, 21:56 | ||||||
0
|
||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 24.11.2014, 22:41 | |
|
xBeSSonik,
во-первых где рекурсия, во -вторых в C нет new/delete, и в-третьих это не компилируется
0
|
|
|
36 / 30 / 31
Регистрация: 16.11.2014
Сообщений: 90
|
|
| 25.11.2014, 01:11 | |
|
bool func(char * str, int kol)
func(str, kol); чем тебе не рекурсия, внимательнее глянь) а на счет new delete вместо char * str = new char[1000] char str[1000]
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||
| 25.11.2014, 01:44 | |||
|
Добавлено через 9 минут и как следствие пример неправильной работы: http://ideone.com/Zgro6R
0
|
|||
|
36 / 30 / 31
Регистрация: 16.11.2014
Сообщений: 90
|
|||||||||||
| 25.11.2014, 02:00 | |||||||||||
|
да с break лажанул
Добавлено через 6 минут
0
|
|||||||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||
| 25.11.2014, 11:25 | ||
|
0
|
||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||
| 26.11.2014, 01:30 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 29.09.2018
Сообщений: 33
|
|
| 07.04.2019, 22:37 | |
|
easybudda
Здравствуйте,можете ли вы пожалуйста примерно объяснить словесно или показать на этом же коде, как использую backtracking определить все возможные варианты удаления минимального количества скобок , чтобы они были расставлены правильно?
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||
| 08.04.2019, 00:57 | ||
|
Функция возвращает указатель на терминальный ноль, если скобки расставлены правильно (или их вообще нет), или указатель на первый ошибочный символ. Логика предельно простая: если встречается одна из открывающих скобок, проверяется значение, возвращённое рекурсивным вызовом. Если оно совпадает с ожидаемым, функция продолжает выполнение, пока терминальный ноль не встретится...
0
|
||
|
0 / 0 / 0
Регистрация: 29.09.2018
Сообщений: 33
|
|
| 08.04.2019, 01:18 | |
|
easybudda Нет,нет, это я всё отлично понял. Я имел ввиду добавить условие в задачу, используя метод перебора с возвратом, выводить все такие случаи,где удаляя минимальное количество скобок,мы получим верную запись. Попробую пояснить
Вход: ()())() Возможные варианты: «()()()» и «(())()» (удалили 5-ю или 2-ю скобку) Исходная запись не верна,и мы стараемся ее исправить. Вот я и хотел бы узнать как это осуществить именно через перебор с возвратом
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 08.04.2019, 01:48 | |
|
xraze666, именно в таком виде функция решает только поставленную задачу. А как её изменить - думать надо. К примеру, если вернулся указатель на закрывающую скобку, его нужно удалить. А если после открывающей скобки вернулся указатель на '\0' - или перед ним вставлять нужную закрывающую, или опять же открывающую удалять...
0
|
|
|
0 / 0 / 0
Регистрация: 29.09.2018
Сообщений: 33
|
||
| 08.04.2019, 10:43 | ||
|
easybudda
0
|
||
| 08.04.2019, 11:23 | |
|
0
|
|
| 08.04.2019, 11:23 | |
|
Помогаю со студенческими работами здесь
14
проверить является ли введенная строка правильной записью русского слова проверить является ли введенная с клавиатуры строка правильной записью вещественного отрицательного числа Рекурсия: проверить, соответствует ли введенная последовательность символов понятию скобки Проверить является ли введенная последовательность возрастающей Строки. Проверить, является ли введенная с клавиатуры последовательность символов целым числом, записанным в десятичной системе счисления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|