输入值
您的输入是一个字符串,由换行符分隔成一些整数2n+1
的长度行。整数不属于输入;您必须从字符串中进行计算。这些行由“方向字符”组成。如果换行符引起问题,则可以用竖管替换它们。2n+1
n ≥ 0
n
>^<v
|
输入形成一个大小为方格的正方形网格(2n+1)x(2n+1)
,并且网格的每个像元都解释为转子路由器,它指向四个基本方向之一。我们继续将令牌放在网格中心的路由器上,然后路由器将以以下方式移动令牌。当令牌落在路由器上时,路由器将沿逆时针方向旋转90度,并将令牌在其指向的新方向上移动一步。如果它落在另一个路由器上,则重复该过程,但是最终,令牌将脱离网格。
输出量
您的输出是路由器的最终配置,格式与输入相同。
例
作为示例输入,请考虑3x3
网格
<^<
^><
>^v
中央路由器已高亮显示以指示令牌(很难看到)。中央路由器旋转以面向北方,并将令牌移动到第一行的中央单元格:
<^<
^^<
>^v
此路由器向西旋转,并将令牌发送到左上角:
<<<
^^<
>^v
角落中的路由器将令牌发送到南方,因此它现在位于中间行的最左侧单元格:
v<<
^^<
>^v
该路由器旋转以面向西,并将令牌发送出网格。
v<<
<^<
>^v
这是最终的网格配置,因此您的程序应将其输出。请注意,在更复杂的示例中,令牌在脱离网格之前可以多次通过同一路由器。
规则
您可以编写函数或完整程序。这是代码高尔夫球,因此最低的字节数为准。不允许出现标准漏洞。您可以确定输入和/或输出中是否有尾随换行符。
测试用例
Input:
v
Output:
>
Input:
<^<
^><
>^v
Output:
v<<
<^<
>^v
Input:
>>^>>
v<vv<
>^>^<
^<>>^
vvv>>
Output:
>>^>>
>v>>v
^>>vv
^^>>>
v^<<^
Input:
<^^^^^^^^
<<^^^^^^>
<<<^^^^>>
<<<<^^>>>
<<<<^>>>>
<<<vv>>>>
<<vvvv>>>
<vvvvvv>>
vvvvvvvv>
Output:
>>>>>>>>v
^>>>>>>vv
^^>>>>vvv
^^^>>vvvv
<<<<<vvvv
^^^^<<vvv
^^^<<<<vv
^^<<<<<<v
^<<<<<<<<