Viele von uns kennen das Spiel Tron. Sie steuern ein "Lightcycle", das auf einem Raster platziert ist. Das Lightcycle fährt immer vorwärts (obwohl Sie die Richtung steuern) und hinterlässt eine permanente Spur. Wenn Sie auf eine Spur stoßen, stürzen Sie ab!
Das Ziel hierbei ist, festzustellen, ob ein bestimmter Pfad eine gültige Schleife ist, das heißt, er kehrt ohne "Absturz" an seinen Ausgangspunkt zurück. Dazu gehen wir davon aus, dass wir am Punkt beginnen (0,0). Eine Eingabe erfolgt in der Form N2E1S2W1, mit einer Reihe von Himmelsrichtungen ( Nist north,E is eastusw.), gefolgt von der Entfernung, um diese Richtung zurückzulegen. In diesem Beispiel würden Sie reisen
N2 : North 2 to (0,2)
E1 : East 1 to (1,2)
S2 : South 2 to (1,0)
W1 : West 1 to (0,0)
Ein Pfad gilt als gültig, wenn er um endet, (0,0)ohne eine andere Koordinate mehr als einmal zu besuchen (er wird (0,0)genau zweimal aufgerufen. Einmal am Anfang und einmal am Ende). Denken Sie daran, als im obigen Beispiel, um von (0,0)zu erhalten (0,2), müssen wir auch besuchen (0,1).
Andere Beispiele:
input -> output
N1E1S1W1 -> true
N1E1N1E1S2W2 -> true
N1S1E1W1 -> false // Visits (0,0) 3 times
N4E2S2W4S2E2 -> false // Visits (0,2) twice
N3E2S3 -> false // Does not return to (0,0)
N1S1 -> anything //I don't care how you evaluate this case
Ihre Ausgabe kann in beliebiger Form erfolgen, sofern sie für alle wahrheitsgemäßen oder falschen Werte dieselbe Ausgabe liefert.
Die Eingabe kann als Zeichenfolge oder als Liste von Zeichen entweder in der Form S1N2E3... oder SNNEEE... verwendet werden. Es gibt auch keine feste Grenze für die Rastergröße, aber es wird davon ausgegangen, dass die Eingabe nicht überläuft. Solange der Code grundsätzlich solide ist, ist es nicht entscheidend, Fälle wie N99999999999999.
Hinweis: Sie können die Fälle bewerten N1S1, E1W1, S1N1, und W1E1aber Sie möchten. Sie sind technisch gültige Wege, aber sie widersprechen dem "Tron" -Geist der Herausforderung.
Wertung
Das ist Code-Golf , also gewinnt die kürzeste Antwort!
Nas 1j, Eas 1, Sas -1jund Was nehmen -1?
N99999999999999
N1S1sollte wahr sein, um mit Ihren Definitionen konsistent zu sein, da es(0, 0)zweimal und(0, 1)einmal erreicht, was unter Ihrer Definition gültig ist.