Gemas en cadena
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- textos
- ciclos
- índices
Enunciado
Son las dos de la mañana y a Renata le queda un tiro para pasar el nivel 40 de su juego de gemas; antes de soltarlo quiere saber cómo quedará la tira cuando terminen las explosiones en cadena.
Recibes tira, la fila como quedaría con su gema ya puesta: un texto de letras mayúsculas, una letra por gema, que dice su color (puede venir vacío). Un grupo son 3 o más letras iguales seguidas, contadas completas: en "CAAAAB" el grupo es "AAAA".
Mientras haya algún grupo, borra el que empieza más a la izquierda, junta lo que queda y vuelve a revisar desde el principio.
Regresa el texto final; si todo explotó, regresa "".
Con "ABBBAAC": explota "BBB" y queda "AAAC"; ahora las A se juntaron y explota "AAA", queda "C", que ya no tiene grupos: regresas "C". El orden importa: en "BAAABBCCCB" explota primero "AAA", luego "BBB" y luego "CCC", y regresas "B". Con "AABB" no hay grupos y regresas "AABB" tal cual.
Ejemplos
El ejemplo
"ABBBAAC" → "C"
Primero lo de la izquierda
"BAAABBCCCB" → "B"
No hay grupos
"AABB" → "AABB"
Un grupo de cuatro
"AAAA" → ""
La explosión junta a otras
"AABBBAC" → "C"
Quedan dos, no explotan
"ABBBAC" → "AAC"
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def tira_final(tira):
passJavaScript
function tiraFinal(tira) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.