Un borde de una string S
es otra string más corta que S
que aparece al principio y al final de S
. En otras palabras, B
es un borde de S
si S
empieza por B
y también S
termina en B
.
Por ejemplo, la string xyz
es un borde de la string xyzcodeoxyz
porque xyzcodeoxyz
empieza por xyz
y también termina en xyz
:
La string xy
no es un borde de xyzcodeoxyz
porque aunque xyzcodeoxyz
empieza por xy
, no termina en xy
:
(Similarmente, la string yz
no es un borde de xyzcodeoxyz
porque aunque aunque aparece al final, no aparece al principio.)
A veces, una string puede tener más de un borde. Por ejemplo, tanto a
como aba
son bordes de abacaba
:
Escribe un programa que lee una string S
y calcula la longitud del borde más largo de S
.
abacabacaba
es abacaba
porque aparece al principio y al final (y no importa que ambas occurrencias compartan caracteres en el medio):Por definición, un borde de S
tiene que ser más corto que S
: si S
tiene longitud N
, entonces la longitud de cualquier borde de S
puede ser máximo N-1
(de lo contrario el borde más largo siempre sería S
, porque una string siempre empieza y termina por ella misma).
Es posible que una string no tenga ningún borde. Por ejemplo, la string xyz
no tiene ningún borde. En este caso la respuesta es 0. (Otra manera de pensarlo sería decir que la string vacía siempre aparece al principio y al final de cualquier otra string, entonces una string de longitud 0
siempre es un borde válido).
La entrada tiene una única línea con una string S
. La string sólo tiene letras minúsculas entre a
y z
. No hay tildes, diéresis, espacios, eñes, números o signos de puntuación.
1 ≤ |S| ≤ 500
.1 ≤ |S| ≤ 100,000
.La salida debe tener exactamente una línea con un entero: la longitud del borde más largo de S
.
Si S
no tiene ningún borde no vacío, la salida debe ser 0
.
xyzcodeoxyz
3
El único borde no vacío de xyzcodeoxyz
es xyz
y tiene longitud 3.
abacaba
3
abacaba
tiene 2 bordes no vacíos: a
y aba
. El más largo tiene longitud 3.
abacabacaba
7
abacaba
tiene longitud 7 y es un borde de abacabacaba
. No es el único; a
y aba
también son bordes válidos pero son más cortos.
aaaa
3
Si una string tiene N
caracteres iguales, la respuesta siempre es N-1
.
xyz
0
xyz
no tiene ningún borde no vacío, entonces la respuesta es 0.