Dwuwymiarowe języki programowania często mają polecenia lustrzane, takie jak /
i \
do przekierowania wskaźnika instrukcji na siatce:
>>>>\
v
v
<<<</
W tym wyzwaniu otrzymasz kierunek i lustro i musisz określić kierunek wychodzenia.
Zasady
Kierunek nadejścia będzie podany jako jeden z znaków, NESW
a lustro podany jako jeden /
lub \
. Możesz otrzymać je w dowolnej kolejności. Musisz używać wielkich liter.
Możesz przyjmować dane wejściowe w dowolnym dogodnym formacie, w tym ciąg dwóch znaków, ciąg znaków, używając separatora między znakami, parę znaków na liście, a nawet parę ciągów singletonów. Jeśli używasz łańcucha z separatorem, separator nie może użyć żadnego ze znaków NWSE\/
.
Dane wyjściowe powinny być znakami NESW
lub ciągami jednoznakowymi.
Możesz napisać program lub funkcję i użyć dowolnej z naszych standardowych metod otrzymywania danych wejściowych i dostarczania danych wyjściowych.
Możesz używać dowolnego języka programowania , ale pamiętaj, że te luki są domyślnie zabronione.
To jest golf golfowy , więc wygrywa najkrótsza ważna odpowiedź - mierzona w bajtach .
Przypadki testowe
Jest tylko 8 możliwych danych wejściowych, które musisz obsłużyć, więc nie ma wymówki, aby nie testować kodu na wszystkich z nich:
N / --> W
N \ --> E
E / --> S
E \ --> N
S / --> E
S \ --> W
W / --> N
W \ --> S
\
. Jeśli twoją odpowiedzią jest przesłanie funkcji, która pobiera ciąg znaków, wtedy oczywiście będziesz potrzebować \\
kodu źródłowego, aby wywołać go poprawnie, ale jeśli na przykład czytasz dane wejściowe ze standardowego wejścia, powinno to być pojedyncze \
. Innymi słowy, jeśli wywołasz funkcję wejściową odpowiedniej długości łańcucha w swoim języku, wynik powinien zawsze być taki sam, niezależnie od tego, czy dane wejściowe zawierają /
lub \
.
readline()
sobie z tym poradzę.