- 22, Oct 2024
- #1
Строка
a -> 0 aba -> 0 ababa -> 0 abababa -> 0 ffffffff -> 0 xyz -> 1 abaa -> 1 abaaa -> 1 abaaaaa -> 1 ooooooops -> 1 kvxb -> 2 kayak -> 2 abaaba -> 2 abaaaba -> 2 avakava -> 2 aaaaakykaaaaa -> 2 abaaaaba -> 3 ababab -> 4 abababab -> 8
Это палиндром, то есть он не меняется при переворачивании. Однако мы можем разделить его пополам и получить два палиндрома.
z
Мы также могли бы разделить это следующим образом:
a
И все три из них являются палиндромами.
На самом деле есть только два способа разбить строку на более мелкие строки, так что никто из них палиндромы:
abaa ba
ab aaba
При любом другом способе разделения будет хотя бы один палидром.
Итак, мы скажем, что эта строка имеет палиндромное число из 2. В более общем смысле число палиндромности строки — это количество способов разделить ее на смежные подстроки, так что ни одна из них не является палиндромом.
Ваша задача будет взять на вход строку и определить ее число-палиндром. Ваш ответ должен корректно работать для входных данных, содержащих строчные буквы ( a baab a
- aba aba
) вместе со всеми символами, используемыми в исходном коде вашей программы.
Подсчет очков
Ваш ответ будет оценен по его собственному числу-палиндрому. Целью является наименьший балл. В случае ничьей решающим фактором является
Эта оценка означает, что если вы решите эту задачу в Brainfuck, вы можете получить ответ по языку с основной оценкой 0. Так что, если вы энтузиаст языка, это просто игра в гольф.
Вот программа для оценки вашего кода.
Тестовые случаи
abaaba
#code-golf #string #source-layout #palindrome #самооценка