Edição importante: Anteriormente, havia um valor incorreto no Exemplo 1. Foi corrigido.
Você recebe uma matriz bidimensional na qual cada célula contém um dos quatro valores.
Exemplos:
1 2 2 2 2 1 @ . . X X V
1 3 1 4 1 4 e . @ I C V
2 3 1 3 4 2 H H @ X I V
1 4 4 2 1 3 V C C
2 2 2 3 2 3 X X X
Os quatro valores representam setas direcionais (para cima, para baixo, esquerda e direita), embora você não saiba qual valor representa qual direção.
As setas direcionais formam um caminho ininterrupto que inclui todas as células da matriz, embora você não saiba onde estão os pontos inicial e final.
Escreva um código que determine qual direção cada um dos quatro valores representa e onde estão os pontos inicial e final.
Um valor de retorno aceitável para uma matriz que contém os valores A, B, C e D seria algo como:
{ up: A, down: C, left: D, right: B, start: [2, 0], end: [4, 2] }
Como você pode percorrer o caminho nos dois sentidos (do início ao fim e do fim ao início), sempre haverá mais de uma solução correta e pode haver mais de duas. Suponha que as entradas que você recebe (como nos exemplos acima) sempre tenham pelo menos uma solução correta. Nos casos em que há mais de uma solução correta, basta retornar uma das soluções corretas.
O menor código vence. Escolherei o vencedor após 7 dias ou 24 horas sem uma nova inscrição, o que ocorrer primeiro.
Estou incluindo soluções para os exemplos acima, mas recomendamos que você as verifique somente depois de escrever seu código:
1:
{para cima: 3, para baixo: 1, para a esquerda: 4, para a direita: 2, início: [0,0], final: [2,5]}
Dois:
{acima: '@', abaixo: 'e', esquerda: '.', direita: 'H', início: [1,1], final: [0,0]}
Três:
{acima: 'I', abaixo: 'V', esquerda: 'C', direita: 'X', início: [0,2], final: [4,2]}