Учитывая список 1
s и -1
s, определите, является ли это действительным кодом OVSF (выводя значение true или false).
Коды 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