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ü, Tiodgv
içine, bu dizi dönüştürür [1;1;1;0;0;1;0;1;0]
, 1
bir 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 1
ve1
.)
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
. to
bir 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.