您之后灾难性乘坐独木舟,你结束了在湍急的河流最终掉下瀑布。您的独木舟爆炸了,但您成功度过了爆炸。但是,您的河流之旅完全偏离了地图-您现在发现自己迷失在森林之中。幸运的是,您仍然具有编程技能,因此决定将程序雕刻到树的一边,以帮助您找到穿过森林的道路。但是,树上没有太多的表面积,因此您必须使程序尽可能短。
森林可以用字符n
的n
(n > 5
)平方来描述,该字符仅由小写字母组成a-z
。一个示例森林:
anehcienwlndm
baneiryeivown
bnabncmxlriru
anhahirrnrauc
riwuafuvocvnc
riwnbaueibnxz
hyirorairener
ruwiiwuauawoe
qnnvcizdaiehr
iefyioeorauvi
quoeuroenraib
cuivoaisdfuae
efoiebnxmcsua
您可能已经注意到,在这个森林中,a
从左上角到右下角有一条斜线贯穿其中。这是穿过森林的“路径”,如果您跟随它,它将指引您到达某个地方。您的任务是编写一个程序,它将找到单数路径。我现在将更具体地描述在此挑战中什么代表“道路”。
在此挑战中,“路径”被定义为类似于可能用Bresenham算法生成的线,但具有以下附加要求:
- 该行必须至少6个字符长
- 行中的每个共线(完全相邻)字符组必须具有相同的长度。
- 它将从森林的一侧开始,到另一侧结束(详细说明请参见我的评论)
为了更清楚地解释第二个要求,请考虑以下内容:
aaa
aaa
aaa
aaa
aaa
该行由字符的共线“段”组成,每个字符正好是三个字符长。它有资格作为一条路径。现在考虑这一行:
a
aa
a
aa
a
aa
该行由共线的“段”组成,它们并非完全相同长度的字符(其中一些长度为1个字符,而某些长度为2个)。因此,这条路径不符合条件。
给定森林图,您的程序将识别路径中使用的字符。输入是方便的任何内容(例如,命令行参数,STDIN prompt()
等)。不能将其预先初始化为变量。输入的第一部分是一个单个整数,n
代表森林的大小(森林总是一个正方形)。在那之后是一个空格,然后将整个森林作为单个字符串。例如,示例林将作为输入呈现,如下所示:
13 anehcienwlndmbaneiryeivownbnabncmxlriruanhahirrnraucriwuafuvocvncriwnbaueibnxzhyirorairenerruwiiwuauawoeqnnvcizdaiehriefyioeorauviquoeuroenraibcuivoaisdfuaeefoiebnxmcsua
输出为:
a
因为路径是使用字母形成的a
。森林中只有一条路。这是代码高尔夫,因此获胜的字符数最少。如有疑问,请在评论中提问。