Permet de définir le processus d'écrasement d'un tableau de nombres. Dans un écrasement, nous lisons le tableau de gauche à droite. Si, à un moment donné, nous rencontrons deux du même élément d'affilée, nous supprimons le premier et doublons le second. Par exemple, voici le processus d'écrasement du tableau suivant
[5,2,2,3]
^
[5,2,2,3]
^
[5,2,2,3]
^
[5,4,3]
^
[5,4,3]
^
Le même élément peut être replié plusieurs fois, par exemple [1,1,2]devient [4]quand on les écrase.
Nous appellerons un tableau non écrasable lorsque le processus d'écrasement de ce tableau ne le modifie pas. Par exemple, [1,2,3]est toujours [1,2,3]après avoir été écrasé.
Votre tâche consiste à prendre un tableau et à déterminer le nombre d'écrasements nécessaires pour le rendre impossible à écraser. Vous avez uniquement besoin de prendre en charge des entiers compris entre 0 et 2 32 -1
Il s'agit de code-golf donc les réponses seront notées en octets avec moins d'octets étant meilleurs.
Cas de test
[1] -> 0
[1,1] -> 1
[2,1,1] -> 2
[4,2,1,1] -> 3
[2,2,2,1,1] -> 3
[0,0,0,0] -> 1
[4,0,0,0,4] -> 1
[4,0,0,0,0,4] -> 1
[] -> 0
0,0,0,0était seulement 1. Ce pourrait être une idée de mentionner explicitement quelque part que nous comptons le nombre de fois que nous devons parcourir un tableau pour l'écraser complètement et non , comme je le pensais initialement, le nombre total de fois que nous écrasons 2 nombres ensemble.
[1,1,2,4,8]renvoyer 1 ou 4?