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

Разбить строку на 4 палиндрома

25.02.2018, 13:27. Показов 1985. Ответов 7

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Условие:
Дана строка s.Нужно разбить ее на 4 палиндрома.

Входные данные:
Строка S |S|<2*10^5

Выходные данные:
"No"-если не возможно разбить строку на 4 палиндрома.
"Yes" а также 4 строки с палиндромами - если возможно разбить строку.
Если есть несколько вариантов,то вывести любой.

Пример 1:
Вход:
abacbcabaa

Выход:
Yes
aba
cbc
aba
a

Пример 2:
Вход:
abcde

Выход:
No


Я написал код который показывает все палиндромы в строке.
d1-массив с палиндромами нечетной длины.
d2-массив с палиндромами четной длины.
В массивах хранятся цифры которые означают количество Палиндромов с центром в точке i.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    string s;
    cin>>s;
    long long n=s.length();
    vector<int> d1 (n),  d2 (n);
    for (int i=0; i<n; ++i)
    {
        d1[i] = 1;
        while (i-d1[i] >= 0 && i+d1[i] < n && s[i-d1[i]] == s[i+d1[i]])
            ++d1[i];
 
        d2[i] = 0;
        while (i-d2[i]-1 >= 0 && i+d2[i] < n && s[i-d2[i]-1] == s[i+d2[i]])
            ++d2[i];
    }
 
    return 0;
}
Помогите реализовать алгоритм разбиения строки на 4 палиндрома.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2018, 13:27
Ответы с готовыми решениями:

Как разбить строку через Split по переносам на новую строку?
У меня есть строка (string file), которая выглядит так, как на фото. Как её разбить по переносам на новую строку и записать это массив? Ну...

Разбить строку
Просьба написать программу на С++ , которая разбивает строку длинной в 200 символов на строки по 20.

Разбить строку
Пример строки: 012313_131232,231234_1235122,1237843_945345 и таких пар может быть много. Заранее их количество неизвестно. Размер первого и...

7
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
25.02.2018, 17:06
dddddoooosssss, дай ссылку на систему тестирования
0
1 / 1 / 0
Регистрация: 23.02.2018
Сообщений: 10
25.02.2018, 17:13  [ТС]
Цитата Сообщение от outoftime Посмотреть сообщение
dddddoooosssss, дай ссылку на систему тестирования
Системы нет,есть только условия.Друг скинул
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
25.02.2018, 17:15
Лучший ответ Сообщение было отмечено dddddoooosssss как решение

Решение

http://e-maxx.ru/algo/palindromes_count берешь алгоритм Манакера и запускаешь динамику.

Добавлено через 1 минуту
Цитата Сообщение от dddddoooosssss Посмотреть сообщение
Системы нет,есть только условия.Друг скинул
Тогда напиши еще для себя пару тестов и проверь время выполнения. Если больше 1 сек - решение надо переделать.
1
1 / 1 / 0
Регистрация: 23.02.2018
Сообщений: 10
25.02.2018, 17:15  [ТС]
Цитата Сообщение от outoftime Посмотреть сообщение
http://e-maxx.ru/algo/palindromes_count берешь алгоритм Манакера и запускаешь динамику.

Добавлено через 1 минуту

Тогда напиши еще для себя пару тестов и проверь время выполнения. Если больше 1 сек - решение надо переделать.
Можно чуть подробнее??А именно, что именно нужно сделать с динамикой?
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
25.02.2018, 17:55
dddddoooosssss, http://e-maxx.ru/algo/dfs жадно выбираешь самую большую глубину, если глубина больше 4х - заканчиваешь текущую ветку. Не знаю к чему тут динамика, мб какое-то свойство есть которое можно использовать, я, пока, его не вижу.
0
1 / 1 / 0
Регистрация: 23.02.2018
Сообщений: 10
25.02.2018, 20:56  [ТС]
http://e-maxx.ru/algo/palindromes_count берешь алгоритм Манакера и запускаешь динамику.
http://e-maxx.ru/algo/dfs жадно выбираешь самую большую глубину, если глубина больше 4х - заканчиваешь текущую ветку. Не знаю к чему тут динамика, мб какое-то свойство есть которое можно использовать, я, пока, его не вижу.
Как мне соединить эти два алгоритма.Поиск в глубину выполняется для графов,но после выполнения первого алгоритма у меня будут всего два массива.Не понимаю как эти два алгоритмы связаны между собой

Добавлено через 2 часа 50 минут
Цитата Сообщение от outoftime Посмотреть сообщение
http://e-maxx.ru/algo/palindromes_count берешь алгоритм Манакера и запускаешь динамику.

Добавлено через 1 минуту

Тогда напиши еще для себя пару тестов и проверь время выполнения. Если больше 1 сек - решение надо переделать.
Спасибо!Дошло.Я придумал решение.Огромное спасибо за ваше терпение.
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
26.02.2018, 01:12
Цитата Сообщение от dddddoooosssss Посмотреть сообщение
Огромное спасибо за ваше терпение.
Всегда пожалуйста.

Правила

4.10 Если вопрос был решен вами самостоятельно, отпишите об этом в своей теме - есть и другие люди, которые столкнутся с той же проблемой, и им поможет ваш ответ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2018, 01:12
Помогаю со студенческими работами здесь

Разбить строку
Как разбить строку средствами джава скрипт? На входе: авава: https://www.cyberforum.ru https://www.cyberforum.ru www.cyberforum.ru ...

Разбить строку
Здравствуйте. Есть некая переменная var url, которая может содержать такие варианты строк 1) &quot;/&quot; 2) &quot;/?p=qwerty&quot;...

Разбить строку
Есть строка: Нужно написать функцию, чтобы в результате получилось на выходе например в vector&lt;string&gt; Вот что смог...

Разбить строку
Стоит такая задача: В таблице есть строка, которая содержит в себе : Республика,Область,Город,район,край. Пример: Коми, Московская...

Разбить строку
Всем привет. Суть задачи: есть url такого видео controller/action/param1/value1/param2/value2/ ... Часть строки controller/action я...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru