Cómo encontrar la longitud máxima de la cadena que forma palíndromo en Java

Algoritmo debería ser algo como a continuación:

  1. Cuente la aparición de todos los caracteres en la cadena
  2. Ahora tienes la máxima ocurrencia de todos los personajes. También ocurrencia mínima que es 0 (ya que también se permite la eliminación).
  3. Inicialmente intente construir toda la cadena como palíndromo, tomando un personaje desde el principio y otro desde el final.
  4. Comience con un personaje, ponga uno al principio y el mismo al final; Repita este proceso hasta la máxima ocurrencia uniforme del personaje. Luego cambie al siguiente carácter y siga repitiendo el proceso anterior.
  5. Al final, obtendrá una cadena donde los caracteres de posición extrema se colocan correctamente y los medios de la cadena deben eliminarse o reorganizarse.

Creo que podría haber múltiples enfoques para programar esto. Pero en este momento mi mente solo puede pensar en este algoritmo.

Este problema será más interesante si tenemos que hacer esto con un mínimo de eliminación y barajado.

¡¡Todo lo mejor!!

Ese no es un problema típico de Java, ya que podría resolverse en la gran mayoría de los lenguajes de programación contemporáneos. Es un problema algorítmico, y puede encontrar al menos un buen comienzo para su solución en el artículo de Wikipedia La subcadena palindrómica más larga.

Y sí, muestra una interesante implementación de Java de lo que parece ser el algoritmo más utilizado para resolver este problema.

Buena suerte !

Como puedes barajar personajes, esto es realmente simple. Pero…. de lo que tengo miedo es de que al darte la respuesta estoy haciendo tu tarea.

Así que te daré una pista: debes contar para cada carácter de la cadena con qué frecuencia ocurre. Y luego usa eso para construir el palíndromo.