W tym wyzwaniu obliczysz, jak wspaniała jest twoja ziemia.
Napisz program lub funkcję, która oblicza rozmiar twojej ziemi, biorąc pod uwagę ścianę, którą zbudowałeś. Otrzymujesz niepusty ciąg wejściowy zawierający zestaw 4 różnych wybranych znaków, które reprezentują cztery kierunki „góra”, „dół”, „lewo” i „prawo” (użyję ^ v < >
w tym wyzwaniu). Nie można wykonać obrotu o 180 stopni ( <>
lub ^v
), ale możesz przekroczyć mur.
Sposób, w jaki „chwytasz” ziemię, otacza ją ścianą. Sama ściana jest również uważana za część twojej ziemi. Kilka przykładów wyjaśni to bardziej. Wykorzystam o
ziemię otoczoną murem, x
samą ścianę i S
punkt początkowy ściany, aby zilustrować budowę muru. Wyjście powinno być całkowity rozmiar waszej ziemi (liczby o
, x
a S
w przypadkach testowych poniżej).
Input: >>>>
Land: Sxxxx
Output: 5
Input: <<<^^^>>>vv
Land:
xxxx
xoox
xoox
xxxS
Output: 16
Input: <<<^^^>>>v
Land:
xxxx
x x
x
xxxS
Output: 11
Input: <
Land: xS
Output: 2
Input: >>>>>>vvvvvvvvv<<<<<^^^^>>>>>>>>vvvvvvvvvv<<<<<<<<<<<<<<<^^^^^^^^^>>>vvvvvv<<<<<
Land:
Sxxxxxx
x
x
x
x
xxxxxxxxx
xxxx xoooox x
xoox xoooox x
xoox xoooox x
xoox xxxxxx x
xoox x
xoox x
xxxxxx x
x x
x x
xxxxxxxxxxxxxxxx
Output: 101
Input: >>vvvv>>^^<<<<^
Land:
Sxx
xox
xxxxx
xox
xxx
Output: 17
Input: <<^^^>>>vv
Land:
xxxx
x x
x x
xxS
Output: 11 <- Note, diagonal edges do not close the "loop"
Wyjaśnienia:
- Nie musisz rysować ściany, wyjście powinno być tylko liczbą całkowitą
- Format wejściowy jest opcjonalny. Możesz wziąć ciąg znaków
<>^v
, listę cyfr,(1, -1, i, -i)
listę znakówABCD
itp.
To jest golf golfowy, więc wygrywa najkrótszy kod w każdym języku . Pamiętaj, że wyjaśnienia są ważne, nawet w „zwykłych” językach!