3
标签死角
在输入ASCII艺术字“道路”的情况下,输出标记了所有死角的道路。 这是一条路: ########.....######..#..### #......#######....#..#..#.# #.##......#...#####..#..### #..#####..#....#..#######.# #......#...#####.....##...# #..###.#...#...###...#..### ##########.#..#..##..#.##.# ..#......#.######.#..#.#.#. ..#......#.#..#.#.#..#.#.#. ..######.###..##..######### 这是一条带有字母标记的死胡同的道路X: ########.....######..X..### #......#######....#..X..#.# #.XX......X...X####..X..### #..XXXXX..X....#..#######.# #......X...#####.....##...# #..###.X...#...###...#..### ##########.#..X..##..#.##.X ..X......#.#XXXXX.#..#.#.X. ..X......#.#..X.X.#..#.#.X. ..XXXXXX.###..XX..######XXX 一个死胡同被定义为任何道路瓦片边界ň其他道路砖,至少n-1个,其中被认为死角此规则了。“边界”是在四个基本方向上进行的,因此对角接壤的图块不计算在内。 重复应用此规则,因为新创建的死胡同本身可以创建更多的死胡同。另请注意,第一次仅应用该规则时,仅与另一个道路砖接壤的任何道路砖都被视为死角。 输入和输出可以是单个字符串(用非#或字符分隔的行.)或数组/列表/等。如果您的语言支持,您也可以接受输入,并且每一行都是一个函数参数。 您可以假设以下有关输入的内容: 总会有至少一个“循环”,#即可以无限跟随的一组字符。(否则,每个单独的图块都将变成死胡同。) 这意味着输入将始终为2×2或更大,因为最小的循环为: ## ## (顺便说一下,应该原样输出)。 所有#字符将被连接。也就是说,如果您要对any进行洪水填充#,那么所有这些都会受到影响。 由于这是code-golf,因此以字节为单位的最短代码将获胜。 上面的示例和微小的2×2网格可用作测试用例(在此挑战中没有很多要涵盖的边缘案例)。