Bestimmen Sie anhand einer Liste von 1
s und -1
s, ob es sich um einen gültigen OVSF-Code handelt oder nicht (indem Sie einen Wahrheits- oder einen falschen Wert ausgeben).
OVSF-Codes sind wie folgt definiert:
[1]
ist ein OVSF-Code.Wenn
X
es sich um einen OVSF-Code handelt, sindX ++ X
undX ++ -X
beide OVSF-Codes.Hier
++
ist die Listenverkettung und-
negiert jedes Element in der Liste.Keine anderen Listen sind gültige OVSF-Codes.
Sie können davon ausgehen, dass die Eingabeliste nur -1
und enthält 1
, Sie müssen jedoch die leere Liste sowie Listen, deren Länge keine Potenz von 2 ist, korrekt behandeln.
Kürzester Code (in Bytes) gewinnt.
Testfälle
[] -> 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