给定1
s和-1
s 的列表,请确定它是否是有效的OVSF代码(通过输出真值或假值)。
OVSF代码定义如下:
[1]
是OVSF代码。如果
X
是OVSF代码,则X ++ X
和X ++ -X
均为OVSF代码。这
++
是列表串联,并-
取反列表中的每个元素。没有其他列表是有效的OVSF代码。
您可以假设输入列表仅包含-1
和1
,但是您必须正确处理空列表以及长度不是2的幂的列表。
最短的代码(以字节为单位)获胜。
测试用例
[] -> False
[1] -> True
[-1] -> False
[1, 1] -> True
[1, -1] -> True
[1, 1, 1, 1] -> True
[1, 1, 1, 1, 1] -> False
[1, -1, -1, 1, -1, 1, 1, -1] -> True
[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] -> False
[1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1] -> True