不好了!Nemo,我们的小小丑鱼在这个ASCII海洋中迷路了,他的父亲Marlin试图找到他。
您的任务是让Marlin安全地到达Nemo。但是要当心,我们在宽松的状态下有疯狂的布鲁斯,所以最好不惜一切代价避免他!
细节
您将获得一个仅包含小写字母的矩形ASCII海洋网格a-z
。该海洋将具有nemo
,marlin
并bruce
以连续多米诺的形式存在于其内部,始终从多米诺第一列的最顶部单元开始。因此,例如,在所有可能的Tetromino中,有效片段在下面的代码段中列出
但是这样的形式是无效的,并且不会出现在输入中:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
最后,您的任务是找到从marlin
多米诺瓷砖到nemo
多米诺瓷砖的路径,确保路径中的任何单元格都不与bruce
多米诺瓷砖相邻。您的输出应使用小写字母以外的可打印ASCII范围(包括空格)中的字符替换所有不属于marlin
tile,nemo
tile和连接它们的路径的字母a-z
。
例
如果输入海洋如下:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(其中3个多米诺骨牌为:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
那么有效的解决方案可能看起来像:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
以下代码段包含更多示例:
笔记
- 该网格将永远是一个完美的矩形,将只包含一个的四角瓷砖
nemo
,marlin
和bruce
。 - 您的路径不应穿过图块
bruce
中任何单元的4个相邻(上,下,左和右)单元中的任何一个bruce
。 - 始终保证从
marlin
到至少会有一条有效路径nemo
。 - 这里没有最短路径的要求,所以疯了!
- 即使您不必找到最短路径,路径中的任何单元格(不包括马林鱼或尼莫蛋白的路径)也不能与该路径中的两个以上其他单元格相邻。
- 路径不应穿过
marlin
或nemo
,否则会迷惑小鱼选择方向。 - 与往常一样,您可以编写程序或函数,通过STDIN(或最接近的等效项),命令行参数或函数参数获取输入,并通过STDOUT(或最接近的等效项),返回值或函数(out)参数生成输出。
- 如果无法进行多行输入,则可以假定网格由
|
字符而不是由字符连接\n
。您也可以将输入作为网格行的数组。
这是代码高尔夫球,因此以字节为单位的最短条目将获胜。
k
上面的l
马林鱼可见,上述解决方案仍然有效吗?(从马林岛的n到