O desafio
Considere a grade king 3x3, conforme mostrado no gráfico ASCII a seguir:
A--B--C
|\/|\/|
|/\|/\|
D--E--F
|\/|\/|
|/\|/\|
G--H--I
Você recebe como entrada uma lista comprimento-9 de números inteiros que representam uma identificação dos nós. Por exemplo, a entrada [0,1,1,2,1,0,5,5,1]
representa a seguinte rotulagem:
0--1--1
|\/|\/|
|/\|/\|
2--1--0
|\/|\/|
|/\|/\|
5--5--1
Sua saída é o conjunto de números inteiros na entrada que formam conjuntos de nós conectados. Mais explicitamente, a saída deve conter um número inteiro n
da entrada se e somente se o conjunto de nós com rótulo n
estiver conectado. Neste exemplo, uma saída aceitável seria [1,2,5]
, pois os dois 0
s não estão conectados. A menor contagem de bytes vence.
Regras detalhadas
- Você pode escolher uma ordem fixa para os nós na sua lista de entrada e deve declarar isso na sua resposta. Na ordem EFBDHCAGI, a rotulagem acima seria dada como
[1,0,1,2,5,1,0,5,1]
. - Você pode escrever um programa completo ou uma função. No último caso, a saída pode ser um conjunto de números inteiros se o seu idioma suportar esses.
- A lista de saída pode conter duplicatas, mas seu comprimento não deve exceder 9.
- As brechas padrão não são permitidas.
Casos de teste
Eles possuem números de um dígito alinhados à grade; ajuste-os à ordem escolhida.
011
210 => 1 2 5
551
010
202 => 0 2
221
110
123 => 0 2 3
221
111
111 => 1
111
111
141 => 1 4
111
fonte
CJam,
5667 bytesOrdem:
CIGABFHDE
.Exemplo de entrada:
Resultado:
Em primeiro lugar, remove números nos cantos que são iguais aos números conectados nas laterais. Em seguida, ele remove números nos lados que são iguais aos números nos lados seguintes. Finalmente, ele remove todos os números ocorridos duas ou mais vezes e adiciona o número do centro.
fonte
CJam, 90 bytes
Isso é baseado em um preenchimento de inundação iterativo explicado aqui e pode ser jogado muito!
Requer a entrada na ordem de
ABCDEFGH
:e saída são os nós conectados:
Breve explicação
Explicação completa a seguir
Experimente online aqui
fonte