visão global
Alguns de vocês podem conhecer a Sequência Kolakoski ( A000002 ), uma sequência autorreferencial bem conhecida que possui a seguinte propriedade:
É uma sequência que contém apenas 1 e 2 e, para cada grupo de 1 e dois, se você somar o comprimento das execuções, ele será igual a apenas metade do comprimento. Em outras palavras, a sequência de Kolakoski descreve a duração das execuções na própria sequência. É a única sequência que faz isso, exceto a mesma sequência com o 1 inicial excluído. (Isso só é verdade se você se limitar a sequências compostas de 1s e 2s - Martin Ender)
O desafio
O desafio é, dada uma lista de números inteiros:
- Saída
-1
se a lista NÃO for um prefixo funcional da sequência Kolakoski. - Envie o número de iterações antes que a sequência se torne
[2]
.
O exemplo elaborado
Usando a imagem fornecida como exemplo:
[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.
Portanto, o número resultante é 8
para uma entrada de [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1]
.
9
também é bom se você estiver indexando 1.
O Conjunto de Testes (Você também pode testar com sub-iterações)
------------------------------------------+---------
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
Se você está confuso:
Truthy: Chegará a dois sem que nenhum passo intermediário possua outros elementos além de 1
e 2
. -Einkorn Enchanter 20 hours ago
Falsy: O valor final não é [2]
. Os termos intermediários contêm algo diferente do conjunto [1,2]
. Algumas outras coisas, veja exemplos.
Este é o código-golfe , o menor número de bytes será o vencedor.
[2]
até que eu vi o [2,2,1,1,2,1,2]
caso de teste.
1
e 2
.
[1]
como caso de teste.
-1
?