Vamos definir o processo de esmagar uma matriz de números. Em uma paixonite, lemos a matriz da esquerda para a direita. Se em um ponto encontramos dois elementos iguais seguidos, removemos o primeiro e duplicamos o segundo. Por exemplo, aqui está o processo de esmagar a seguinte matriz
[5,2,2,3]
^
[5,2,2,3]
^
[5,2,2,3]
^
[5,4,3]
^
[5,4,3]
^
O mesmo elemento pode ser dobrado múltiplas vezes, por exemplo, [1,1,2]
torna-se [4]
quando esmagado.
Nós chamaremos uma matriz de inutilizável quando o processo de esmagar essa matriz não a alterar. Por exemplo, [1,2,3]
ainda está [1,2,3]
depois de ser esmagado.
Sua tarefa é obter uma matriz e determinar o número de esmagamentos necessários para torná-la inescrutável. Você precisa apenas suportar números inteiros no intervalo de 0 a 2 32 -1
Isso é código-golfe, então as respostas serão pontuadas em bytes, com menos bytes sendo melhores.
Casos de teste
[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
era só 1
. Pode ser uma idéia mencionar explicitamente em algum lugar que estamos contando o número de vezes que precisamos percorrer um array para esmagá-lo completamente e não , como eu pensava inicialmente, o número total de vezes que esmagamos dois números juntos.
[1,1,2,4,8]
retornar 1 ou 4?