Dato un elenco di 1s e -1s, determinare se si tratta di una valida codice OVSF (emettendo un truthy o un valore Falsey).
I codici OVSF sono definiti come segue:
[1]è un codice OVSF.Se
Xè un codice OVSF, alloraX ++ XeX ++ -Xsono entrambi codici OVSF.Ecco la
++concatenazione dell'elenco e-annulla tutti gli elementi dell'elenco.Nessun altro elenco è un codice OVSF valido.
È possibile supporre che l'elenco di input contenga solo -1e 1, ma è necessario gestire correttamente l'elenco vuoto, nonché elenchi la cui lunghezza non è una potenza di 2.
Vince il codice più breve (in byte).
Casi test
[] -> 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