обзор
Некоторым из вас может быть известна последовательность Колакоски ( A000002 ), хорошо известная самоссылочная последовательность, которая имеет следующее свойство:
Это последовательность, содержащая только 1 и 2, и для каждой группы из 1 и 2, если вы сложите длину прогонов, она будет равна половине длины. Другими словами, последовательность Колакоски описывает длину серий в самой последовательности. Это единственная последовательность, которая делает это, за исключением той же самой последовательности с удаленной начальной 1. (Это верно только в том случае, если вы ограничиваете себя последовательностями, состоящими из 1 и 2 - Мартин Эндер)
Соревнование
Задача, учитывая список целых чисел:
- Выведите,
-1
если список НЕ является рабочим префиксом последовательности Колакоски. - Выведите количество итераций до того, как последовательность станет
[2]
.
Разработанный пример
Используя предоставленное изображение в качестве примера:
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] # Iteration 0 (the input).
[1,2,2,1,1,2,1,2,2,1,2] # Iteration 1.
[1,2,2,1,1,2,1,1] # Iteration 2.
[1,2,2,1,2] # Iteration 3.
[1,2,1,1] # Iteration 4.
[1,1,2] # Iteration 5.
[2,1] # Iteration 6.
[1,1] # Iteration 7.
[2] # Iteration 8.
Следовательно, результирующее число 8
для ввода [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1]
.
9
Также хорошо, если вы 1-индексации.
Набор тестов (вы также можете тестировать с под-итерациями)
------------------------------------------+---------
Truthy Scenarios | Output
------------------------------------------+---------
[1,1] | 1 or 2
[1,2,2,1,1,2,1,2,2,1] | 6 or 7
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] | 8 or 9
[1,2] | 2 or 3
------------------------------------------+---------
Falsy Scenarios | Output
------------------------------------------+---------
[4,2,-2,1,0,3928,102904] | -1 or a unique falsy output.
[1,1,1] | -1
[2,2,1,1,2,1,2] (Results in [2,3] @ i3) | -1 (Trickiest example)
[] | -1
[1] | -1
Если вы запутались:
Правда: в конечном итоге он достигнет двух без какого-либо промежуточного шага, имеющего какие-либо элементы, кроме 1
и 2
. -Einkorn Enchanter 20 hours ago
Ложь: конечное значение нет [2]
. Промежуточные термины содержат нечто иное, чем набор [1,2]
. Пара других вещей, см. Примеры.
Это код-гольф , победителем будет самый низкий счетчик байтов.
[2]
до тех пор, пока я не увидел [2,2,1,1,2,1,2]
тестовый пример
1
и 2
.
[1]
в качестве контрольного примера.
-1
?