Contando prefijos palíndromos
Dado un conjunto de cadenas compuestas por letras mayúsculas del alfabeto inglés, usted debe calcular por cada unas de ellas la cantidad de prefijos palíndromos que contienen al menos una vocal. Una cadena palíndromo es aquella que se puede leer de la misma forma de izquierda a derecha y de derecha a izquierda. Un prefijo no es más que una subcadena que comienza desde el primer caracter de la cadena original.
Entrada
La primera línea de entrada contiene un número entero . Las siguientes líneas contienen una cadena de letras mayúsculas del alfabeto inglés ('A' hasta 'Z') de a lo sumo caracteres de longitud.
Salida
Usted debe imprimir una línea por cada caso de la entrada, conteniendo un número entero que representa la cantidad de prefijos palíndromos que contienen al menos una vocal en la palabra correspondiente a cada caso.
Ejemplo de Entrada
5
ABA
ABABB
BBABABB
BABAA
BAB
Ejemplo de Salida
2
2
1
1
1
Especificaciones sobre casos de prueba
- 3 casos de prueba con valor de 5 puntos cada uno, en los cuales las cadenas tienen a lo sumo 100
- 3 casos de prueba con valor de 10 puntos cada uno, en los cuales las cadenas tienen a lo sumo 1000 caracteres.
- 1 casos de prueba con valor de 15 puntos, en el cual las cadenas tienen a lo sumo 5000 caracteres.
- 1 casos de prueba con valor de 20 puntos, en el cual las cadenas tienen a lo sumo 50000 caracteres.
- 1 casos de prueba con valor de 20 puntos, en el cual las cadenas tienen a lo sumo 100000 caracteres.
En algunos casos de prueba, las cadenas tienen solo letras entre 'A' y 'E' (i.e. 'A', 'B', 'C', 'D' y 'E').
Comments
Alguien me puede ayudar en este problema plisss 🙂🙂🙂
Este problema debería ser Tipo "String" en todo su esplendor.
Ya lo resolvi con una pequeña optimizacion, gracias
Deberían cambiar la clasificación del problema a String.
Necesito ayuda, el ultimo Caso de Prueba de da TLE. Compruebo si el prefijo es palindromo mediante Hashing y luego con una Fuerza Bruta ,miro si existe al menos una vocal en la subcadena original, me pudieran decir como optimizar el tiempo.....
Para lo de la vocal puedes hacer una tabla acumulativa, específicamente: S[j] la cantidad de vocales 1...j. Entonces la cantidad de vocales en el rango [i,j] es S[j]-S[i-1]. De hecho se puede hacer más fácil ya que si un prefijo 1...i tiene una vocal entonces cualquier prefijo 1...j (con ) tiene una vocal.
Puedo usar Hashing para resolver este problema?
Si se puede hacer con hashing
si no se usar ese algoritmo
como utilizas hash
no conozco ese algoritmo si me pudieras decir el metodo?
como puedo reducir el tiempo?
como puedo reducir el tiempo de este problema?
@dcq si te refieres a hacer un algoritmo mas efieciente yo utilice hash para comprobar si eran palindromos.