In questa sfida, calcolerai quanto è grande la tua terra.
Scrivi un programma o una funzione che calcola la dimensione della tua terra, dato un muro che hai costruito. Ti viene data una stringa di input non vuota contenente un set di 4 caratteri distinti di tua scelta che rappresentano le quattro direzioni "su", "giù", "sinistra" e "destra" (userò ^ v < >
in questa sfida). Non è possibile effettuare curve di 180 gradi ( <>
o ^v
), ma è possibile attraversare il muro.
Il modo in cui "catturi" la terra è circondandolo con il tuo muro. Anche il muro stesso è considerato parte della tua terra. Alcuni esempi lo renderanno più chiaro. Userò o
per la terra che è stata circondata dal muro, x
per il muro stesso e S
per il punto di partenza del muro, solo per illustrare come è costruito il muro. L'output dovrebbe essere la dimensione totale della tua terra (il numero di o
, x
e S
nei casi di test di seguito).
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"
chiarimenti:
- Non è necessario disegnare il muro, l'output dovrebbe essere solo un numero intero
- Il formato di input è facoltativo. Puoi prendere una stringa con
<>^v
, un elenco di cifre(1, -1, i, -i)
, un elenco di caratteri,ABCD
ecc.
Questo è code-golf, quindi vince il codice più corto in ogni lingua . Ricorda, le spiegazioni sono importanti, anche nelle lingue "normali"!