Saltar al contenido

La concha del caracol

Enunciado

La concha del caracol cono crece por el borde, una línea de pigmento a la vez: cada célula nueva se pinta según sus vecinas de la línea de antes, y así salen los triángulos que la decoran. Leilani Kahale, malacóloga, quiere predecir cómo será el borde tras varias generaciones. Escribe una función que reciba fila, un texto de # (célula pintada) y . (sin pintar) con al menos un carácter, y k, un entero de 0 en adelante. En cada generación todas las células cambian al mismo tiempo, mirando la fila anterior: una queda # si exactamente una de sus dos vecinas (la de la izquierda o la de la derecha) era #, y . si eran las dos o ninguna; su propio estado no importa. Fuera de las orillas todo cuenta como .. Regresa la fila, del mismo largo, después de k generaciones; con k igual a 0 regresa la fila tal cual.

Con "...#..." y 3: la primera generación da "..#.#..", la segunda ".#...#." (el centro tenía # a los dos lados) y la tercera "#.#.#.#", así que regresa "#.#.#.#".

Ejemplos

  • El ejemplo

    "...#...", 3 → "#.#.#.#"

  • Cero generaciones

    "..#..", 0 → "..#.."

  • Una sola célula se apaga

    "#", 1 → "."

  • Toda la fila pintada

    "#####", 1 → "#...#"

  • Empieza en la orilla

    "#....", 2 → "#.#.."

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def pinta_borde(fila, k):
    pass

JavaScript

function pintaBorde(fila, k) {
}
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 →