16
减少科拉科斯基
总览 你们中有些人可能知道Kolakoski序列(A000002),这是一个众所周知的具有以下属性的自指代序列: 它是一个仅包含1和2的序列,对于每组1和2,如果将游程的长度相加,则它等于自身,仅为长度的一半。换句话说,Kolakoski序列描述了序列本身的游程长度。这是唯一执行此操作的序列,只是删除了开头的1的序列相同。(仅当您将自己限制为由1和2组成的序列时才如此-Martin Ender) 挑战 面临的挑战是,给定一个整数列表: 输出-1如果列表不是Kolakoski序列的工作前缀。 在序列变为之前输出迭代次数[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 …