15
アレイをどれだけ激しく粉砕できますか?
数字の配列を粉砕するプロセスを定義しましょう。クラッシュでは、配列を左から右に読み取ります。ある時点で2つの同じ要素が連続して出現した場合、最初の要素を削除し、2番目の要素を2倍にします。たとえば、次の配列を粉砕するプロセスです [5,2,2,3] ^ [5,2,2,3] ^ [5,2,2,3] ^ [5,4,3] ^ [5,4,3] ^ 同じ要素を複数回折りたたむことができます。たとえば、押しつぶされたときに[1,1,2]なり[4]ます。 配列を押しつぶすプロセスによって配列が変更されない場合、配列を押しつぶせないものと呼びます。例えば、粉砕された後も[1,2,3]まだ[1,2,3]です。 あなたの仕事は、配列を取得し、それを破壊できないようにするために必要なクラッシュの数を決定することです。0から2 32 -1の範囲の整数のみをサポートする必要があります これはコードゴルフなので、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いです。 テストケース [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