Percursos
/
Go
Go
/
Exercícios
/
Jardim de infância
Jardim de infância

Jardim de infância

Médio

Introdução

A turma do jardim de infância está a aprender a cultivar plantas. A professora achou que seria uma boa ideia dar à turma sementes para plantar e fazer crescer na terra. Para isso, as crianças colocaram copinhos ao longo dos peitoris das janelas e plantaram um tipo de planta em cada copo. As crianças puderam escolher as suas preferidas entre quatro tipos de sementes disponíveis: relva, trevo, rabanetes e violetas.

Instruções

A tua tarefa é, dado um diagrama, determinar que plantas cada criança da turma do jardim de infância tem a seu cargo.

Há 12 crianças na turma:

  • Alice, Bob, Charlie, David, Eve, Fred, Ginny, Harriet, Ileana, Joseph, Kincaid e Larry.

Plantam-se quatro tipos diferentes de sementes:

Planta Codificação no diagrama
Grass G
Clover C
Radish R
Violet V

Cada criança recebe quatro copos, dois em cada fila:

[window][window][window]
........................ # each dot represents a cup
........................

O professor atribui os copos às crianças por ordem alfabética dos seus nomes, o que significa que Alice vem primeiro e Larry por último.

Aqui está um diagrama de exemplo que representa as plantas da Alice:

[window][window][window]
VR......................
RG......................

Na primeira fila, a mais próxima das janelas, tem um violet e um radish. Na segunda fila tem um radish e algum grass.

O teu programa receberá as plantas da esquerda para a direita, começando pela fila mais próxima das janelas. A partir disto, deverá conseguir determinar que plantas pertencem a cada criança.

Por exemplo, se lhe for dito que o jardim tem o seguinte aspeto:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Então, se lhe pedirem as plantas da Alice, deve fornecer:

  • Violets, radishes, violets, radishes

Já se lhe pedirem as plantas do Bob, obteria:

  • Clover, grass, clover, clover

Implementação

O argumento diagram começa cada linha com um \n. Isto permite que os literais de string não processados do Go apresentem diagramas no código-fonte de forma agradável, como duas linhas alinhadas à esquerda. Por exemplo, o teste pode conter o seguinte.

        diagram := `
VVCCGG
VVCCGG`

Se o argumento children for nil, usa a lista de crianças definida nas instruções acima. Se não for nil, usa o valor indicado.

Editar via GitHub A ligação abre numa nova janela ou separador
Go Exercism

Estás pronto para começar Jardim de infância?

Inscreve-te no Exercism para aprenderes e dominares Go com 34 conceitos165 exercícios, e mentoria humana real, tudo grátis.