|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.01.2017, 10:29 | #1 |
Регистрация: 04.01.2017
Сообщений: 8
|
[Алгоритм, C++] Наибольшая общая правильная скобочная подпоследовательность
Здравствуйте!
Такая вот задача: даны две строки, только из круглых скобок, длины n <= 700. Требуется найти правильную скобочную последовательность наибольшей длины, которая в то же время является подпоследовательностью этих двух строк. Если таких несколько, можно вывести любую. Пример: Код:
Всегда ваш, Karl Frederich-Adler "Kremen" Meinkopf < kremen.karl@yandex.com >
Последний раз редактировалось Карл Кремень; 10.01.2017 в 11:13. |
10.01.2017, 10:56 | #2 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Цитата:
а потом эти списки СРАВНИТЬ( сравнить последовательности ВХОДЯЩИЕ в эти списки). а можно просто перебрать ВСЕ правильные подпоследовательности в одной из ... и ПРОСТО проверить ЕСТЬ ЛИ такая в другой из ... если ЕСТЬ, то сравнить с "ранее" найденной и "оставить" лучшую.
программа — запись алгоритма на языке понятном транслятору
|
||
10.01.2017, 11:14 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
10.01.2017, 11:14 | #4 |
Регистрация: 04.01.2017
Сообщений: 8
|
Так их же может быть до хрена, разве нет?
Всегда ваш, Karl Frederich-Adler "Kremen" Meinkopf < kremen.karl@yandex.com >
|
10.01.2017, 11:15 | #5 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
k=0
если "(" то k=k+1 если ")" то k=k-1 а если в ходе подсчета получим отрицательное число? если скобочная последовательность правильная чему равно k?
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
10.01.2017, 11:15 | #6 |
Регистрация: 04.01.2017
Сообщений: 8
|
Прошу прощения, в условии была опечатка. Требуется найти подпоследовательность, а не подстроку
Всегда ваш, Karl Frederich-Adler "Kremen" Meinkopf < kremen.karl@yandex.com >
|
10.01.2017, 11:15 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Может что-то не понял. Не вижу результат ни в одной из входящих строк. По идее в данном случае должно быть (). Не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
10.01.2017, 11:22 | #8 |
Регистрация: 04.01.2017
Сообщений: 8
|
Прошу прощения, в условии была опечатка. Требуется найти подпоследовательность, а не подстроку
Всегда ваш, Karl Frederich-Adler "Kremen" Meinkopf < kremen.karl@yandex.com >
|
10.01.2017, 11:36 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Input:
())(()()() )(())(()) Output: (())() Непонятки. Выделенное красным правильные подпоследовательности?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
10.01.2017, 11:36 | #10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
где найденная "подпоследовательность" (см. Output) есть в первой и во второй строчках?! update уже увидел пример Аватар'а. если это верно, то задача весьма занимательна! Последний раз редактировалось Serge_Bliznykov; 10.01.2017 в 11:39. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Наибольшая общая подпоследовательность | fufayka | Помощь студентам | 1 | 18.11.2016 01:16 |
Рефал. Наибольшая общая подстрока | LifeWind | Помощь студентам | 1 | 03.06.2013 20:27 |
Подпоследовательность | phoenix92 | Помощь студентам | 0 | 16.05.2011 17:56 |
найти подпоследовательность из подряд идущих элементов с наибольшей суммой на С++ | aj_tramp | Помощь студентам | 2 | 12.12.2008 08:57 |