Modifica importante: in precedenza, c'era un valore errato nell'esempio 1. È stato corretto.
Viene fornita una matrice bidimensionale in cui ogni cella contiene uno dei quattro valori.
Esempi:
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
I quattro valori rappresentano le frecce direzionali (su, giù, sinistra e destra), sebbene non si sappia quale valore rappresenta quale direzione.
Le frecce direzionali formano un percorso ininterrotto che include ogni cella dell'array, sebbene non si sappia dove si trovano i punti iniziale o finale.
Scrivi un codice che determini quale direzione rappresenta ciascuno dei quattro valori e dove si trovano i punti iniziale e finale.
Un valore di ritorno accettabile per un array che contiene i valori A, B, C e D sarebbe simile a:
{ up: A, down: C, left: D, right: B, start: [2, 0], end: [4, 2] }
Poiché è possibile percorrere il percorso in entrambi i modi (dall'inizio alla fine e dall'inizio alla fine), ci sarà sempre più di una soluzione corretta e potrebbero essercene più di due. Supponiamo che gli input che ricevi (come negli esempi sopra) abbiano sempre almeno una soluzione corretta. Nei casi in cui esiste più di una soluzione corretta, è sufficiente restituire solo una delle soluzioni corrette.
Il codice più corto vince. Sceglierò il vincitore dopo 7 giorni o 24 ore senza una nuova presentazione, a seconda di quale evento si verifichi per primo.
Sto includendo soluzioni agli esempi sopra, ma ti incoraggio a controllarli solo dopo aver scritto il tuo codice:
Uno:
{su: 3, giù: 1, sinistra: 4, destra: 2, inizio: [0,0], fine: [2,5]}
Due:
{su: '@', giù: 'e', sinistra: '.', destra: 'H', inizio: [1,1], fine: [0,0]}
Tre:
{su: 'I', giù: 'V', sinistra: 'C', destra: 'X', inizio: [0,2], fine: [4,2]}
