也许它不是真正的迷宫,但仍然如此。
规则:
输入是一个两行字符串,包括
*,1,x和X。那根绳子是迷宫。线的长度相等。您可以将输入作为带有
,(逗号)的字符串或这两行之间的任何方便的分隔符。或者,您也可以将这两行作为函数的单独参数。输出是退出字符串必须执行的步骤数(最后一步是将您移出字符串的步骤)。
您从左上角(较高的线)开始,在第一个符号之前。
对于每一步,您将向前移动一个符号(从第n个位置到第(n + 1)个位置)。然后,根据您所踩的角色,结果是不同的。这是每个字符的作用:
*- 没有。您通常只是踩到它。x-踩到它后,切换线路,但与起点保持相同的水平距离。例如,您踩到较高行的第三个位置,并在x此处遇到了一个小写字母。然后,您立即移至下一行,但再次移至第三位置。X-切换线路并转到下一个位置。此处的示例相同,但您也从第三位置移至第四位置(因此,第二行位于第四位置)。1-向前移动另一个位置。
每个角色完成工作后,将替换为空格,不再“有效”。
示例如下。
输入:
x *如前所述,您从第一行的第一个符号开始。第一步将您移至字母上
x,此字母将您切换至第二行。该字母x不再用作x,而是由代替*。在后面的示例中,这将更有意义。您现在位于底行的星号上,对您没有任何作用。第二步是将您向前移动,然后退出弦线,因此迷宫完成了,并且花费了2个步骤。
输出
2。输入:
xX* x1*第一步:继续前进
x,这会将您移至x下一行的。这是一条规则,该规则说使用的字符替换为星号。然后,您移回第一行,但x由于它已被使用并成为星号,因此不再存在。因此,您可以安全地在该星号上移动,并且该步骤已完成(您现在位于第一行的第一个位置)。第二步:继续前进
X,它会将您推到较低的线,然后再将您向前推。您现在位于第二行的第三个位置(星号),而从未访问过第二个位置(包含1)。第三步:向前移动,退出字符串。
输出:
3。
测试用例:
输入:
*1* xxx输出:
3。(因为1使您跳到第三位置)。在那里您永远不会访问第二行,但这是输入的必需部分。输入:
*X*1*x x*1xx*输出:
4。输入:
1x1x ***X输出:
3。输入:
1*x1xxx1*x x*x1*11X1x输出:
6。输入:
xXXXxxx111* **xxx11*xxx输出:
6。
"\n\n"是两行字符串...
1,从第一行开始,然后向前移动一步,然后完成迷宫...