Wyzwanie
Biorąc pod uwagę albo ciąg znaków (może mieć znaki nowej linii), albo dwuwymiarową tablicę i dodatnią liczbę całkowitą n
, wyjściowa pozycja platform n
obraca się po pozycji początkowej.
U, D, R, L
są platformy.
^, v, >, <
to strzałki, które zmieniają kierunki platform.
U, D, R, L
poruszaj się odpowiednio w górę, w dół, w prawo i w lewo. Gdy strzałka znajduje się przed platformą, zmienia kierunek.
Wpływa na platformę:
R<
D
^
v
U
>L
>L
<
(górna strzałka wpłynie na górę L
, ale dolna strzałka nie wpłynie na górę L
)
Nie wpłynie na:
<
R
>
L
v
U
D
^
<R
( R
idzie dobrze, więc <
nie wpłynie na R
)
Na przykład, jeśli był to ciąg:
>R <
Platforma R
poruszałaby się w prawo, aż prawie dotknie strzałki:
> R<
Następnie zmieni kierunek i zacznie iść w lewo:
> R <
(chociaż teraz idzie w lewo, list się nie zmieni).
W niektórych przypadkach platforma się nie porusza, na przykład
>R<
lub
v
U
^
Ostatni przykład:
v >
D Rv
^U
^ <
Po jednej turze
v >
U v
D ^ R
^ <
Po jednej turze
v >
D Uv
^R
^ <
I jeszcze jedna kolej:
v >
R v
D ^ U
^ <
Możesz założyć, że platformy po n
zakrętach nie będą się nakładać, że platformy nie przekroczą granic i że platforma nie dotknie strzałki wskazującej ten sam kierunek co platforma.
Przypadki testowe
Input:
">R <", 4
Output:
"> R <"
Input:
">R <", 6
Output:
">R <"
Input:
">R<", 29
Output:
">R<"
Input:
"v
U
^", 5
Output:
"v
U
^"
Input:
"v
D
^", 1
Output:
"v
D
^"
Input:
"v
D
^", 4
Output:
"v
D
^"
Input:
"v >
D Rv
^U
^ < ", 2
Output:
"v >
D Uv
^R
^ <
Input:
">RL<", 3
Output:
">LR<"
Input:
">L R<", 4
Output:
"> RL <"
Input:
"> RR<
>L R <", 6
Ouput:
">RR <
> RL <"
Input:
"R <", 4
Output:
" R <"
Input:
"R <", 6
Ouput:
"R <"
Zasady
- To jest golf-golf, więc najkrótsza odpowiedź w bajtach wygrywa!
- Standardowe luki są niedozwolone.
n
zakrętach.Odpowiedzi:
C #, 1245 bajtów
Na początku wydawało się to prostsze, ale potem pisałem więcej kodu. :RE
LINQ, aby wyliczyć i zaktualizować planszę, zmieniając postać, aby wskazać kierunek, w którym się porusza. Znaki są cofane przed powrotem. Zakłada również, że tablica jest kwadratowa (więc musiał zmodyfikować niektóre przypadki testowe obejmujące wiele linii, aby pasowały do tego ograniczenia).
Rozszerzony:
źródło