In dieser Herausforderung berechnen Sie, wie groß Ihr Land ist.
Schreiben Sie ein Programm oder eine Funktion, die die Größe Ihres Landes berechnet, vorausgesetzt, Sie haben eine Mauer gebaut. Sie erhalten eine nicht leere Eingabezeichenfolge mit 4 verschiedenen Zeichen Ihrer Wahl, die die vier Richtungen "hoch", "runter", "links" und "rechts" darstellen (ich werde sie ^ v < >
in dieser Herausforderung verwenden). Es ist nicht möglich, sich um 180 Grad zu drehen ( <>
oder ^v
), aber Sie können Ihre Wand überqueren.
Sie "erobern" Land, indem Sie es mit Ihrer Mauer umgeben. Die Mauer selbst gilt auch als Teil Ihres Landes. Einige Beispiele werden es klarer machen. Ich werde o
Land verwenden, das von der Mauer umgeben ist, x
für die Mauer selbst und S
für den Ausgangspunkt der Mauer, um nur zu veranschaulichen, wie die Mauer gebaut ist. Die Ausgabe sollte die Gesamtgröße Ihres Landes (die Anzahl der sein o
, x
und S
in den Testfällen unten).
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"
Klarstellungen:
- Sie müssen die Wand nicht zeichnen, die Ausgabe sollte nur eine Ganzzahl sein
- Das Eingabeformat ist optional. Sie können einen String mit
<>^v
, eine Liste von Ziffern(1, -1, i, -i)
, eine Liste von ZeichenABCD
usw. nehmen.
Das ist Code-Golf, also gewinnt der kürzeste Code in jeder Sprache . Denken Sie daran, Erklärungen sind wichtig, auch in "normalen" Sprachen!