Nach Ihrer katastrophalen Kanufahrt sind Sie am Ende der Stromschnellen von einem Wasserfall gefallen. Ihr Kanu explodierte, aber Sie haben es geschafft, die Explosion zu überleben. Ihre Flussreise ist jedoch völlig von der Landkarte verschwunden - Sie haben sich jetzt inmitten eines Waldes verloren. Glücklicherweise haben Sie immer noch Ihre Programmierkenntnisse und beschließen, ein Programm in die Seite eines Baumes zu schnitzen, um sich im Wald zurechtzufinden. Der Baum hat jedoch nicht viel Oberfläche, daher müssen Sie Ihr Programm so kurz wie möglich halten.
Die Gesamtstruktur kann als nby n( n > 5) -Zeichen von Zeichen beschrieben werden, das nur aus Kleinbuchstaben besteht a-z. Ein Beispielwald:
anehcienwlndm
baneiryeivown
bnabncmxlriru
anhahirrnrauc
riwuafuvocvnc
riwnbaueibnxz
hyirorairener
ruwiiwuauawoe
qnnvcizdaiehr
iefyioeorauvi
quoeuroenraib
cuivoaisdfuae
efoiebnxmcsua
Möglicherweise haben Sie bemerkt, dass in diesem Wald eine diagonale Linie von aZeichen von der oberen linken Ecke zur unteren rechten Ecke verläuft. Dies ist ein "Weg" durch den Wald, der Sie irgendwohin führt, wenn Sie ihm folgen. Ihre Aufgabe ist es, ein Programm zu schreiben, das den singulären Pfad findet. Ich werde jetzt genauer beschreiben, was einen "Weg" in dieser Herausforderung bedeutet.
Ein "Pfad" in dieser Herausforderung wird als eine Linie definiert, die einer ähnelt, die möglicherweise mit einem Bresenham-Algorithmus generiert wurde , jedoch mit den zusätzlichen Anforderungen, dass:
- Die Zeile muss mindestens 6 Zeichen lang sein
- Jede kollineare (vollständig benachbarte) Gruppe von Zeichen in der Zeile muss dieselbe Länge haben .
- Es beginnt an einem Waldrand und endet am gegenüberliegenden Waldrand (siehe meinen Kommentar hier für die Ausarbeitung).
Betrachten Sie die folgende Zeile, um die zweite Anforderung klarer zu erläutern:
aaa
aaa
aaa
aaa
aaa
Diese Zeile besteht aus kollinearen "Segmenten" von Zeichen, von denen jedes genau drei Zeichen lang ist. Es qualifiziert sich als Pfad. Betrachten Sie nun diese Zeile:
a
aa
a
aa
a
aa
Diese Zeile besteht aus kollinearen "Segmenten", die nicht alle genau die gleiche Länge von Zeichen haben (einige von ihnen sind 1 Zeichen lang und einige von ihnen sind 2). Somit qualifiziert sich dieser nicht als Pfad.
Ihr Programm identifiziert anhand einer Karte der Gesamtstruktur die im Pfad verwendeten Zeichen. Die Eingabe erfolgt nach Belieben (z. B. Befehlszeilenargument, STDIN prompt()usw.). Es kann nicht in eine Variable vorinitialisiert werden. Der erste Teil der Eingabe ist eine einzelne Ganzzahl, ndie die Größe des Waldes darstellt (der Wald ist immer ein Quadrat). Danach ist ein Leerzeichen und dann die gesamte Gesamtstruktur als einzelne Zeichenfolge. Zum Beispiel würde der Beispielwald als Eingabe wie folgt dargestellt:
13 anehcienwlndmbaneiryeivownbnabncmxlriruanhahirrnraucriwuafuvocvncriwnbaueibnxzhyirorairenerruwiiwuauawoeqnnvcizdaiehriefyioeorauviquoeuroenraibcuivoaisdfuaeefoiebnxmcsua
Die Ausgabe hierfür wäre:
a
weil der Pfad mit dem Buchstaben gebildet wird a. Es wird nur einen Weg im Wald geben. Dies ist Code Golf, also gewinnt die niedrigste Anzahl von Charakteren. Wenn Sie Fragen haben, fragen Sie in den Kommentaren.