Wichtige Änderung: Früher gab es in Beispiel 1 einen falschen Wert. Dieser wurde behoben.
Sie erhalten ein zweidimensionales Array, in dem jede Zelle einen von vier Werten enthält.
Beispiele:
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
Die vier Werte stehen für Richtungspfeile (nach oben, unten, links und rechts), obwohl Sie nicht wissen, welcher Wert welche Richtung darstellt.
Die Richtungspfeile bilden einen ununterbrochenen Pfad, der jede Zelle im Array enthält, obwohl Sie nicht wissen, wo sich die Start- oder Endpunkte befinden.
Schreiben Sie einen Code, der bestimmt, welche Richtung jeder der vier Werte darstellt und wo sich die Start- und Endpunkte befinden.
Ein akzeptabler Rückgabewert für ein Array, das die Werte A, B, C und D enthält, wäre etwa:
{ up: A, down: C, left: D, right: B, start: [2, 0], end: [4, 2] }
Da Sie den Pfad in beide Richtungen durchlaufen können (von Anfang bis Ende und von Ende bis Anfang), gibt es immer mehr als eine richtige Lösung und möglicherweise mehr als zwei. Angenommen, die Eingaben, die Sie erhalten (wie in den obigen Beispielen), haben immer mindestens eine richtige Lösung. In Fällen, in denen es mehr als eine richtige Lösung gibt, ist es ausreichend, nur eine der richtigen Lösungen zurückzugeben.
Der kürzeste Code gewinnt. Ich werde den Gewinner nach 7 Tagen oder 24 Stunden ohne neue Einreichung auswählen, je nachdem, was zuerst eintritt.
Ich füge Lösungen zu den obigen Beispielen hinzu, aber ich möchte Sie ermutigen, diese erst zu überprüfen, wenn Sie Ihren Code geschrieben haben:
Einer:
{up: 3, down: 1, left: 4, right: 2, start: [0,0], end: [2,5]}
Zwei:
{up: '@', down: 'e', left: '.', right: 'H', start: [1,1], end: [0,0]}
Drei:
{hoch: 'I', runter: 'V', links: 'C', rechts: 'X', Anfang: [0,2], Ende: [4,2]}
