Cadena Palindromo

Determinar si una cadena de texto es palindromo.

Palindromo es una cadena que se lee igual hacia delante que hacia atras.

Acontinuación pongo el codigo de la función

public static Boolean esPalindromo(string palabra) {
    int largoCadena = palabra.Length%2==0?palabra.Length/2-1:palabra.Length/2;
    int contadorAux = palabra.Length%2==0?largoCadena*2+1:largoCadena*2;
 
    for(int i=0; i<=largoCadena; i++) {
        if(palabra[i]!=palabra[contadorAux--])
            return false;
    }
    return true;
}

Calculamos lo largo de la cadena, si es número par dividimos entre dos y restamos uno para optener una letra central que no ocupa comparación, en caso de que no sea par, solo dividimos entre dos.

Ejemplo palabras con un largo impar:

ana
reconocer
yatay

Ejemplo palabras con un largo par:
sobornos son robos

Despues solo recorremos la cadena iterando comparando los caracteres.

[r][e][c][o][n][o][c][e][r]

1.-[r]
2.-[e]
3.-[c]
4.-[o]
5.-[n]
6.-[o]
7.-[c]
8.-[e]
9.-[r]

1.-[r] = 9.-[r]
2.-[e] = 8.-[e]
3.-[c] = 7.-[c]
4.-[o] = 6.-[o]
y sabemos que la letra numero cinco es la centrar no se ocupa comparar.

Regresando verdadero, en caso de que alguna comparacion no corresponsa devolvemos falso

Comentarios