Saltar al contenido

Gemas en cadena

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):
    pass

JavaScript

function tiraFinal(tira) {
}
Resolver este reto

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.

Más retos de O(n²)

Ver todos los retos →