Помогите Варе подсчитать количество способов разрезать браслет так, чтобы получилось слово‑палиндром? — ЛисОтвет

Помогите Варе подсчитать количество способов разрезать браслет так, чтобы получилось слово‑палиндром?

2.30K просмотровНаука, Технологии, Языки
0
0 комментариев

Варе подарили на День Рождения браслет, на котором по кругу записаны строчные буквы латинского алфавита. Изучив внимательно браслет, Варя поняла, что на нём указано какое‑то слово тарабарского языка, состоящее из N букв. Особенность слов тарабарского языка в том, что в них всегда от одной до восьми букв «a».
Подумав, Варя решила, что ей нужен не браслет, а цепочка, и захотела разрезать браслет ровно в одном месте, чтобы получившееся слово было палиндромом. Помогите Варе подсчитать количество способов разрезать браслет так, чтобы получилось слово‑палиндром. Определите позиции возможных разрезов — номера букв, после которых можно разделить браслет (буквы в слове пронумерованы от 1 до N).
Пояснение: в первом тесте разрезать браслет можно двумя способами. Можно сделать разрез между буквами b, тогда получится палиндром «baab», либо между буквами a, тогда получится палиндром «abba».
В втором тесте нельзя разрезать браслет так, чтобы получился палиндром.

Аноним
0

Задание не совсем понятно, но код примерно такой будет:
Сначала проверяем, является ли вообще введённая последовательность палиндромом
for i := 1 to len div 2 do
if s[i] <> s[len-i+1] then begin
f := False;
break;
end;
if f = True then
if (i = Len) or (S[i + 1] in D) then begin… ;проверяем, можно ли разбить на отдельные палиндромы
if Cnt > 1 then Write… ; выписываем количество вариантов
else
writeln(‘0’);

Аноним
Вы просматриваете 1 из1 ответов, нажмите здесь, чтобы просмотреть все ответы.