Uma cadeia de caracteres é chamada de palíndromo se a sequência de caracteres da esquerda para a direita é igual à sequência de caracteres da direita para a esquerda (uma outra definição é que o primeiro caractere da cadeia deve ser igual ao último caractere da cadeia, o segundo caractere deve ser igual ao penúltimo caractere, o terceiro caractere deve ser igual ao antepenúltimo caractere, e assim por diante).
Por exemplo, as cadeias de caracteres “mim”,
“axxa” e “ananaganana” são exemplos de
palíndromos. Se uma cadeia não é palíndroma, ela pode ser dividida em
cadeias menores que são palíndromas. Por exemplo, a cadeia
“aaxyx” pode ser dividida de quatro maneiras distintas,
todas elas contendo apenas cadeias palíndromas: {“aa”,
“xyx”}, {“aa”, “x”,
“y”, “x”}, {“a”,
“a”, “xyx”} e {“a”,
“a”, “x”, “y”,
“x”}.
Dada uma cadeia de caracteres, escreva um programa que determine qual o menor número de partes em que a dada cadeia deve ser dividida de forma que todas as partes sejam palíndromos.
A primeira linha contém um número inteiro
que indica o número de caracteres da cadeia. A segunda linha contém a
cadeia de caracteres, composta por letras minúsculas, de
‘a’ a ‘z’, sem espaços em branco.
Seu programa deve produzir uma única linha, contendo um número inteiro, o menor número de partes em que a cadeia de entrada deve ser dividida de forma que todas as partes sejam palíndromas.
a’ a ‘z’).3
axa
1
6
xyzyyx
4
10
bbabcbbaab
4