Beschreibung der Herausforderung
Nennen wir ein zweidimensionales, rechteckiges Array (dh jedes Subarray hat die gleiche Länge), ein Raster . Jede Einheit eines Gitters ist entweder ein leerer Raum oder ein Rand . In einem Zeichenraster wird der leere Raum durch ein einzelnes Leerzeichen dargestellt. Jedes andere Zeichen wird als Rahmen behandelt. Beispielgitter ( +
's, |
' s und -
's wurden zur besseren Lesbarkeit hinzugefügt - sie sind nicht Teil des Gitters ):
+----+
| |
| |
| |
| |
| |
+----+ an empty 4x5 grid
+------+
| |
| # |
| # |
+------+ a 6x3 grid with 2 borders
+----------+
| |
| |
| ##### |
| # # |
| ## # <------ enclosed area
| # # |
| ###### |
| |
+----------+ a 10x8 grid with an enclosed area
Füllen Sie bei einem 2D-Raster und einem Koordinatenpaar den umschlossenen Bereich um den durch die Koordinaten dargestellten Punkt.
Beispiel Ein- / Ausgänge
1)
0 0
+----------+ +----------+
| | |XXXXXXXXXX|
| | -> |XXXXXXXXXX|
| | |XXXXXXXXXX|
+----------+ +----------+
2)
6 5
+-----------------+ +-----------------+
| | | |
| | | |
| ######## | | ######## |
| # # | | #XXXXXXX# |
| # #### | | #XXXX#### |
| # # | | #XXXX# |
| # # | -> | #XXXX# |
| # # | | #XXXX# |
| #### | | #### |
| | | |
| | | |
+-----------------+ +-----------------+
3)
4 6
+-----------------+ +-----------------+
| | |XXXXXXXXXXXXXXXXX|
| #### | |XXXX####XXXXXXXXX|
| # # | -> |XXX# #XXXXXXXX|
| #### | |XXXX####XXXXXXXXX|
| | |XXXXXXXXXXXXXXXXX|
+-----------------+ +-----------------+
4)
4 5
+-----------------+ +-----------------+ +-----------------+
| | | | | |
| | | | | |
| #### | | #### | | XXXX |
| #### | -> | #### | or | XXXX |
| #### | | #### | | XXXX |
| | | | | |
+-----------------+ +-----------------+ +-----------------+
5)
2 6
+----------------+ +----------------+
| | |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
| | -> |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
|BBBBBBBBBBBBBBBB| |BBBBBBBBBBBBBBBB|
| | | |
| | | |
+----------------+ +----------------+
Anmerkungen
Ein leeres Gitter wird als eingeschlossen betrachtet, dh die Ränder befinden sich implizit auch entlang der Ränder des Gitters (siehe Beispiele 1. und 5.).
Eine Ecke eines geschlossenen Bereichs muss nicht L-förmig sein. Die folgenden zwei Bereiche sind daher gleichwertig:
#### ##
# # # #
# # == # #
# # # #
#### ##
Wenn eine Einheit unter den Koordinaten zufällig ein Rand ist, können Sie das Raster entweder unverändert lassen (wie in Beispiel 4.) oder es als leeren Raum behandeln.
Sie können ein beliebiges Zeichen für Füll- / Leerzeichen auswählen, solange Sie diese Informationen in die Übermittlung aufnehmen.
Bei Verwendung einen anderen Typ als
char
Ihre Zwecke besser paßt, die Sie verwenden könnenints
(0
für leeren Raum,1
für Grenz) oderbooleans
(true
undfalse
jeweils) oder jede andere Art - nur sicherstellen , dass diese Informationen in Ihrer Vorlage schließen,Die in den obigen Beispielen verwendeten Koordinaten sind 0-indizierte
(row, column)
Koordinaten, da dies für zweidimensionale Arrays bequemer ist. Wenn Sie ein(column, row)
(kartesisches) System und / oder nicht 0-indizierte Koordinaten verwenden möchten , geben Sie dies in Ihrer Einreichung an.Wenn Sie nicht wissen, wo Sie anfangen sollen, lesen Sie den Wikipedia-Artikel über Hochwasserfüllung
Denken Sie daran, dass dies eine Code-Golf- Herausforderung ist. Machen Sie Ihren Code so kurz wie möglich!