6
预测落石
在此挑战中,您将获得从侧面看的二维地形图。不幸的是,地形的某些部分漂浮在空中,这意味着它们会坠落。您的工作是预测它们的降落位置。 输入 您的输入是一个或多个等长的换行符分隔的字符串,仅包含以下字符#(数字符号,表示一块岩石)或.(一个句点,表示空白)。 输出 您的输出具有与输入相同的格式,但具有以下修改。让我们将输入字符串视为岩石的二维网格。输入中通过相邻岩石的路径连接到网格底部的每个岩石都是牢固的 ; 其他岩石松动。对角相邻的岩石不视为相邻。所有松散的岩石都将直线下落,最后以一堆堆叠的形式固定在坚硬的岩石或底行上。松散的岩石彼此不相连,因此它们是单独坠落的,而不是大地层。输出是结果网格。 例子 输入 ..###. .##.#. .#.... .##.#. 不含松散的岩石,因此输出与此相同。 输入 ...#.. .#..#. .#..## .#...# .##### .#...# 顶部包含一块松散的岩石,然后掉落在其下方的坚硬岩石上。输出是 ...... .#..#. .#..## .#.#.# .##### .#...# 输入 .#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..# 左侧有一大堆松动的岩石。该组随着岩石的下落而分解,因此输出为 .......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..# 澄清说明 您可以从STDIN接收输入并输出到STDOUT,也可以编写函数。 这是代码高尔夫球,因此最短的程序(以字节为单位)是赢家。 …