La clase de infantil está aprendiendo a cultivar plantas. La maestra pensó que sería buena idea dar a la clase semillas para plantarlas y hacerlas crecer en la tierra. Con ese fin, los niños han colocado vasitos a lo largo de los alféizares de las ventanas y han plantado un tipo de planta en cada vasito. Los niños pudieron elegir sus favoritas entre cuatro tipos de semillas disponibles: grass, clover, radishes y violets.
Tu tarea consiste en determinar, dado un diagrama, qué plantas le corresponden a cada niño de la clase de infantil.
En la clase hay 12 niños:
Se plantan cuatro tipos distintos de semillas:
| Planta | Codificación en el diagrama |
|---|---|
| Grass | G |
| Clover | C |
| Radish | R |
| Violet | V |
Cada niño recibe cuatro vasos, dos en cada fila:
[window][window][window]
........................ # each dot represents a cup
........................
Su profesor asigna los vasos a los niños por orden alfabético de sus nombres, lo que significa que Alice es la primera y Larry el último.
Aquí tienes un diagrama de ejemplo que representa las plantas de Alice:
[window][window][window]
VR......................
RG......................
En la primera fila, la más cercana a las ventanas, tiene «violet» y «radish». En la segunda fila tiene «radish» y un poco de «grass».
A tu programa se le darán las plantas de izquierda a derecha, empezando por la fila más cercana a las ventanas. A partir de esto, debería poder determinar qué plantas le corresponden a cada alumno.
Por ejemplo, si se le dice que el jardín tiene este aspecto:
[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV
Entonces, si se le piden las plantas de Alice, debería devolver:
Y si se le piden las plantas de Bob, debería devolver:
El argumento diagram empieza cada fila con un \n.
Esto permite que los literales de cadena sin procesar de Go presenten los diagramas en el código fuente de forma clara como dos filas alineadas a la izquierda.
Por ejemplo, la prueba puede contener lo siguiente.
diagram := `
VVCCGG
VVCCGG`
Si el argumento children es nil, usa el array de niños definido en las instrucciones anteriores.
Si no es nil, usa el valor dado.
Regístrate en Exercism para aprender y dominar Go con 34 conceptos165 ejercicios y mentoría humana real, todo gratis.