Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/89: Рейтинг темы: голосов - 89, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 25.05.2020
Сообщений: 17

Задача палиндромы

09.10.2020, 13:35. Показов 18594. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка s. Вы можете менять местами символы любое количество раз. Например, если
s = "aebecda", вы можете, например, поменять местами символы так, чтобы получился строку "abacede".
После того, как вы перемешайте символы, вам нужно разделить строку на несколько подстрок(по крайней мере на одну). Каждый символ исходной строки должен принадлежать ровно одной подстроке. К примеру,
последний строку можно разделить так: "aba | c | ede".
Нужно разделить строки так, чтобы каждая подстрока был палиндромом.
Напомним, что палиндром - строка, одинаково читается в обоих направлениях (слева направо и
справа налево).
Разделите строку так, чтобы длина минимального палиндрома была максимальна. Найдите эту
длину.

Формат входных данных
Первая строка содержит строку s (1 + 6 | s | 6105), который состоит только из букв английского
алфавита в нижнем регистре.

Формат выходных данных
Выведите одно целое число - ответ на эту задачу.

Примеры
standard input / standard output
aebecda / 1
eutxutuatgextu / 7
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.10.2020, 13:35
Ответы с готовыми решениями:

Задача на числа палиндромы
Всем привет, недавно столкнулся с данной задачей, никак не могу придумать решение. Думал перебрать все сочетания чисел по бинарной маске,...

Палиндромы
Задача: Даны два четырёхзначных числа A и B. Выведите все четырёхзначные числа на отрезке от A до B, запись которых является палиндромом. ...

Палиндромы ЯЛ
Палиндро́м (от др.-греч. πάλιν — «назад, снова» и др.-греч. δρóμος — «бег, движение») — число, буквосочетание, слово или текст, одинаково...

14
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 13:55
подсчет. четность/нечетность. на вскидку.
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.10.2020, 14:42
Лучший ответ Сообщение было отмечено Artem0303 как решение

Решение

Artem0303,
Python
1
2
3
st = input()
k = sum(1 for i in set(list(st)) if st.count(i) % 2)
print((len(st) - k) // k + 1)
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 14:50
Цитата Сообщение от Gdez Посмотреть сообщение
1 for i in set(list(st)) if st.count(i) % 2
прекрати квадратить эту задачу! минус в "репу"
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
09.10.2020, 15:04
eaa, можно разбить, но пусть пробуют "читать" и сами разбивают, если свои наработки не выкладывают...
Я сам в начале пишу, потом "собираю" так
0
2 / 1 / 1
Регистрация: 11.10.2020
Сообщений: 8
13.10.2020, 23:27
st = input()
k = sum(1 for i in set(list(st)) if st.count(i) % 2)
print((len(st) - k) // k + 1)
Тут не совсем верно. В стартовом топике для "aebecda", можно разбить на "aba" "с" "ede"
Тогда минимальное значение 1, а по данному алгоритму будет 2
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
13.10.2020, 23:39
Лучший ответ Сообщение было отмечено Artem0303 как решение

Решение

Olkam, добавь условие вместо print
Python
1
2
3
4
if (len(st) - k) // 2 - k < 0:
    print(1)
else :
    print(#в коде)
0
2 / 1 / 1
Регистрация: 11.10.2020
Сообщений: 8
13.10.2020, 23:57
А если k=0? например при строке "aabbcc"
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
14.10.2020, 00:01
Olkam, добавляй условия
ТС не нужно было...
Может еще, что увидишь
1
2 / 1 / 1
Регистрация: 11.10.2020
Сообщений: 8
14.10.2020, 00:04
Да я просто вредничаю -) Не пойму, зачем вообще подобная задача
1
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
14.10.2020, 00:06
Python
1
2
3
4
5
6
 if not k:
    print(len(st))
elif (len(st) - k) // 2 - k < 0:
    print(1)
else :
    print(#в коде)
Добавлено через 1 минуту
Olkam, на таких "простых" задачках много сыпятся - не все граничные условия сразу видны
1
2 / 1 / 1
Регистрация: 11.10.2020
Сообщений: 8
14.10.2020, 00:58
Хотя такой задачей можно помучать студентов.

Добавлено через 5 минут
Спасибо за консультацию

Добавлено через 9 минут
Хотя если дать строку "ааааа", то надо еще условие добавлять

Добавлено через 36 минут
или "aeaeaeae"
алгоритм выдает "8", а по идее должно быть "1"
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
14.10.2020, 04:29
Olkam, "aaaaa" => 5 ; "aeaeaeae" => 8 => "ааееееаа"
Строка разбивается так, чтобы минимальный палиндром был максимально возможным. Иначе для любой строки ответом будет => 1.
1
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 15
15.10.2020, 19:29
Товарищи, объясните пожалуйста, что писать в конце ибо при проверке всегда выходит один
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
15.10.2020, 20:52
pancho, вроде это
Python
1
2
3
4
5
6
7
8
st = input()
k = sum(1 for i in set(list(st)) if st.count(i) % 2)
if not k:
    print(len(st))
elif (len(st) - k) // 2 - k < 0:
    print(1)
else :
    print((len(st) - k) // k + 1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2020, 20:52
Помогаю со студенческими работами здесь

Числа-палиндромы
Задача: дана возрастающая последовательность палиндромов(чисел которые одинаково читаются слева направо и справа налево): 1, 2, 3, 4,...,...

Простые числа (палиндромы)
Задано целое число n&gt;2. Составить программу для нахождения всех простых чисел с диапазона , которые являются палиндромами.

Палиндромы в разных системах счисления
Для заданного диапазона (a,b) найдите число (числа), изображение которого в наибольшем количестве систем счисления (от 2 до 36) являются...

Как сделать? Числа-палиндромы
Добрый день! Прохожу курс по python. Решил поупражняться. Пока все ок. Вот только затормозил на этих задачах. Никакие не даются. Есть...

Удалить палиндромы из списка слов
Напишите функцию main(s), где s - список обычных слов или фраз, разделенных пробелами, смешанных с палиндромами (тоже могут быть фразами)....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru