一只蚂蚁沿着线框立方体的边缘(而不是面)行走。它遇到的每个顶点都有一个叉,两个新的边从中分支出来。蚂蚁选择转向的方式- left或right。这些方向是相对于面向顶点且在立方体外部的蚂蚁而言的。您的目标是根据left/ right选择蚂蚁的顺序,确定蚂蚁是否在开始的位置结束。
例如,如果蚂蚁向左转四次(left left left left),则它将逆时针移动一个正方形,并在开始的位置结束。但是,如果继续left left left left right下去,它将终止于多维数据集的其他位置。同样,如果它走了left right right right left,它将终止于其起始边缘,但朝向相反的顶点,该顶点不算作同一位置。
蚂蚁的路径可能会重复边缘,包括其开始的边缘,但重要的是在整个序列之后它的终止位置。
编写一个命名函数,该函数接受蚂蚁的转弯序列并输出蚂蚁在序列之后是否回到其起始位置。为变量分配一个未命名的函数足以使其成为一个命名函数。
(编辑:如果您的语言无法创建命名函数,则可以通过STDIN /打印或堆栈使用输入和输出来实现该函数。如果无法实现,请使其成为将输入和输出保存在其中的代码段变量。)
输入项
长度为left/ 包含在内的一系列/ right决策,0以31您选择的格式表示。这可能是字母字符串R/ L,数字列表1/ -1或布尔数组。别让它们成为方法名称或对您的代码有用的字符串。
如果与以下测试用例不同,请以您的格式发布测试用例。
输出量
True/ False,0/ 1或您所用语言的类似物。
获奖标准
最少的字节数获胜。请记住,您需要提供一个命名函数。您可以在函数之外使用代码,但是这些字节也可以计数。如果多次调用,您的函数应正确运行。
测试用例
True 情况(每行一个,第二个是空列表):
1 1 1 1
-1 -1 -1 -1
1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1
-1 1 1 -1 -1 1 1 -1
1 1 1 -1 -1 -1 -1 1
1 -1 -1 1 -1 -1
1 1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1
-1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
False 情况(每行一个):
1
1 1
1 1 1
-1 1
1 -1 -1 -1 1
1 -1 -1 1 1
-1 1 -1 1
1 1 1 1 -1
-1 -1 1 -1 1 -1 -1 1
1 -1 1 1 1 1 -1 -1 -1 1 1 -1 -1 -1
这是与Ls和Rs 相同的测试用例。
True 情况:
RRRR
LLLL
RLRLRL
RRLLRRLL
LRRLLRRL
RRRLLLLR
RLLRLL
RRRRLLLLRLLRLL
LLLRLLRRLRLRRRRRRRRRRRRRRRRR
False 情况:
R
RR
RRR
LR
RLLLR
RLLRR
LRLR
RRRRL
LLRLRLLR
RLRRRRLLLRRLLL
额外的信用挑战