MATL , 20 bayt
TiodgvYsG8XQ!"@gto?P
Girdi, ;ayırıcı olarak kullanılan bir sütun dizisidir .
Çevrimiçi deneyin!
açıklama
Giriş dizisini örnek olarak ele alalım [1;2;3;5;7;4;6;7;9]. Kodunun ilk bölümü, Tiodgviçine, bu dizi dönüştürür [1;1;1;0;0;1;0;1;0], 1bir işaret parite değişimi . (Özellikle, kod giriş dizisinin her girdisinin paritesini alır, ardışık farklılıkları hesaplar, sıfır olmayan değerleri dönüştürür 1ve1 .)
Sonra toplamı , toplamıYs hesaplar . Bu numaraların her biri, girdinin öğelerinin gruplandırılacağı temelde bir etiket olarak kullanılacaktır . Bu, giriş dizisini grupları içeren bir hücre dizisine bölerek yapılır . Bu durumda verir .[1;2;3;3;3;4;4;5;5]G8XQ!{[1] [2] [3;5;7] [4;6] [7;9]}
Kodun geri kalanı hücre dizisinde yinelenir ( "). Her bileşen sayısal dizisi ile itilir @g. tobir kopyasını çıkarır ve paritesini hesaplar . (Eğer ?sonuç truthy olan), örneğin, bir dizi içeriği bir tek, dizi çevrilmiş (P ).
Yığın sonunda örtük olarak görüntülenir . Her sayısal dikey dizi görüntülenir ve yeni satırlarla ayrılmış sayıların bir listesini verir.