Dans ce défi, vous calculerez la taille de votre terrain.
Écrivez un programme ou une fonction qui calcule la taille de votre terrain, compte tenu d'un mur que vous avez construit. On vous donne une chaîne d'entrée non vide contenant un ensemble de 4 caractères distincts de votre choix qui représentent les quatre directions "haut", "bas", "gauche" et "droite" (je vais l'utiliser ^ v < >dans ce défi). Il n'est pas possible de faire des virages à 180 degrés ( <>ou ^v), mais vous pouvez traverser votre mur.
La façon dont vous "capturez" la terre est en l'entourant de votre mur. Le mur lui-même est également considéré comme faisant partie de votre terrain. Quelques exemples le rendront plus clair. Je vais utiliser opour un terrain qui a été entouré par le mur, xpour le mur lui-même et Spour le point de départ du mur, juste pour illustrer comment le mur est construit. La sortie doit correspondre à la taille totale de votre terrain (le nombre de o, xet Sdans les cas de test ci-dessous).
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"
Précisions:
- Vous n'avez pas besoin de dessiner le mur, la sortie ne doit être qu'un entier
- Le format d'entrée est facultatif. Vous pouvez prendre une chaîne avec
<>^v, une liste de chiffres(1, -1, i, -i), une liste de caractères,ABCDetc.
Il s'agit de code-golf, donc le code le plus court dans chaque langue l' emporte. N'oubliez pas que les explications sont importantes, même dans les langues "normales"!