Bei Eingabe einer ASCII-Kunst- "Straße" wird die Straße mit allen gekennzeichneten Sackgassen ausgegeben.
Dies ist eine Straße:
########.....######..#..###
#......#######....#..#..#.#
#.##......#...#####..#..###
#..#####..#....#..#######.#
#......#...#####.....##...#
#..###.#...#...###...#..###
##########.#..#..##..#.##.#
..#......#.######.#..#.#.#.
..#......#.#..#.#.#..#.#.#.
..######.###..##..#########
Dies ist die Straße mit den Sackgassen, die mit dem Buchstaben gekennzeichnet sind X
:
########.....######..X..###
#......#######....#..X..#.#
#.XX......X...X####..X..###
#..XXXXX..X....#..#######.#
#......X...#####.....##...#
#..###.X...#...###...#..###
##########.#..X..##..#.##.X
..X......#.#XXXXX.#..#.#.X.
..X......#.#..X.X.#..#.#.X.
..XXXXXX.###..XX..######XXX
Eine Sackgasse ist definiert als jedes Straßenplättchen, das an n andere Straßenplättchen grenzt , von denen mindestens n-1 nach dieser Regel bereits als Sackgasse gelten . "Angrenzen" erfolgt in den vier Hauptrichtungen, daher zählen diagonal angrenzende Kacheln nicht.
Diese Regel wird wiederholt angewendet, da neu erstellte Sackgassen selbst mehr Sackgassen erstellen können . Beachten Sie außerdem, dass jedes Straßenkärtchen, das nur an ein anderes Straßenkärtchen angrenzt, beim ersten Anwenden der Regel als Sackgasse eingestuft wird.
Eingabe und Ausgabe können entweder eine einzelne Zeichenfolge (mit durch ein beliebiges Zeichen getrennten Zeilen #
oder .
) oder ein Array / eine Liste / usw. Sein. Wenn Ihre Sprache dies unterstützt, können Sie auch Eingaben vornehmen, wobei jede Zeile ein Funktionsargument ist.
In Bezug auf die Eingabe können Sie Folgendes annehmen:
Es wird immer mindestens eine "Schleife" geben - das ist eine Gruppe von
#
Zeichen, der unendlich gefolgt werden kann. (Andernfalls würde jedes einzelne Plättchen eine Sackgasse werden.)Dies impliziert, dass die Eingabe immer 2 × 2 oder größer ist, da die kleinste Schleife:
## ##
(Was übrigens unverändert ausgegeben werden soll.)
Alle
#
Charaktere werden verbunden. Das heißt, wenn Sie eine Überflutung durchführen#
, sind alle davon betroffen.
Da es sich um Code-Golf , wird der kürzeste Code in Bytes gewinnen.
Das obige Beispiel und das winzige 2 × 2-Raster können als Testfälle verwendet werden (es gibt nicht viele Randfälle, die in dieser Herausforderung behandelt werden müssen).