Supongo que el idioma es el inglés para la entrada y estoy imprimiendo todas las impresiones posibles usando caracteres que dependen de su uso de distintos, para palíndromos distintos use un conjunto para los resultados.
Entonces, hablemos primero de los palíndromos, son simétricos acerca de sus centros, ya sea alrededor de una letra en el ejemplo del medio abbbbcbbbba que se centra alrededor de c o como abba que se centra entre la mitad de la longitud de la cadena.
Cosas a tener en cuenta de esto:
- ¿Existe un algoritmo más rápido que O (kn ^ 2) para calcular las rutas más cortas k-step de una sola fuente en un gráfico ponderado?
- ¿Qué es el algoritmo k-Nearest Neighbour? ¿Qué tipo de problemas puede resolver este algoritmo? ¿Qué tipo de matemática se requiere?
- Cómo entender el análisis amortizado y por qué lo necesitamos
- Dados los pares 'n1' de corchetes "[]", los pares 'n2' de corchetes "{}" y los pares 'n3' de corchetes "()", ¿cómo podemos encontrar todas las combinaciones válidas posibles de todos estos pares de manera eficiente?
- Cómo implementar este problema: Problema - C - Fuerzas de código
1.) Cada Palindrome que se centra en la mitad de la longitud tiene alrededor de un número par de letras.
2.) Cada Palindrome que se centra alrededor de una letra en la posición central contiene una letra omitida (es decir, una letra que no se usa en la cadena si puede ser par y no se usa en la cadena O contada impar ) concatenada entre la mitad de la longitud de palíndromo que se centra alrededor de la mitad de la longitud. Ex abcba se hace concatenando entre la letra c y la abba .
3.) podemos crear un palíndromo con la mitad de una cuerda.
Entonces, crearíamos todas las cadenas de números pares y luego concatenaríamos todas las letras que no se usan en la cadena.
La solución :
1.) Cree un hashmap que mapee el recuento de la letra.
2.) Cree un conjunto de caracteres char_set que contenga para cada par de caracteres (es decir, 2 de carácter específico) un nuevo elemento de ese carácter. reducir el recuento en hash-map por 2.
3.) un resultado de matriz que contiene el resultado de su concatenación.
4.) Inicialmente el resultado contiene una cadena nula.
5.) ahora para cada elemento en char_set lo concatena con cada elemento presente en el resultado y luego agrega el elemento resultante en el resultado.
6.) Ahora tiene un resultado que contiene cada palíndromo de longitud uniforme con todos los caracteres omitidos sin otro carácter del mismo tipo para emparejarse con un conteo de 1 en el mapa hash (es decir, caracteres contados impares).
7.) Ahora, para cada cadena de elementos S en el resultado, imprima tres cadenas (+ representa la concatenación y realice estas operaciones para cada permutación de S):
- S + reverso de (S) (incluso palíndromo de longitud ed)
- S (último carácter omitido) + reverso de (S) (con el último carácter omitido para crear un palíndromo de longitud impar con caracteres contados pares)
- por cada carácter contado impar U en la impresión de mapa hash S + U + reverso de S (palíndromo de longitud impar con letras contadas impares en el medio)
para palindromes distintos, el resultado de la tienda es un SET.
Espero que esta simple solución ayude.