Dada una lista de 1s y -1s, determinar si es o no es un válido código OVSF (mediante la salida de un Truthy o el valor Falsey-).
Los códigos OVSF se definen de la siguiente manera:
[1]es un código OVSFSi
Xes un código OVSF, entoncesX ++ XyX ++ -Xambos son códigos OVSF.Aquí
++está la concatenación de listas y-niega todos los elementos de la lista.Ninguna otra lista son códigos OVSF válidos.
Puede suponer que la lista de entrada contiene solo -1y 1, pero debe manejar la lista vacía correctamente, así como las listas cuya longitud no es una potencia de 2.
El código más corto (en bytes) gana.
Casos de prueba
[] -> 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