Benim küçük çocuğumun böyle bir oyuncağı var:
Bu oyuncak, 1 (en küçük) ile 10 (en büyüğü) arasında bir sayı alacağımız 10 istiflenebilir küçük kovadan oluşur. Bazen küçük kazık yapar ve oyuncak böyle biter:
Bu gibi yığınları şematik olarak gösterebiliriz:
1 6
4 9 2 7
5 10 3 8
---------- <-- Floor
1 2 3 4 <-- Pile #
Veya başka bir yolla:
[[4,5],[9,10],[1,2,3],[6,7,8]]
Bu kova kümeleri, orijinal kümeyi (ilk resim) yeniden inşa etmek için kolayca tekrar takılabilir, ancak daha küçük kova yığınlarını ardışık olarak daha büyük kova yığınlarına yerleştirerek:
1 1 6
2 2 7
1 6 3 6 3 8
4 9 2 7 4 9 7 4 9
5 10 3 8 5 10 8 5 10
---------- > [Pile 3 to 1] > ---------- > [Pile 4 to 2] > ---------- > [Pile 1 to 2] > Done!
1 2 3 4 1 2 3 4 1 2 3 4
Bununla birlikte, bazen benim çocuğum kuleler inşa etmeye çalışır ya da kovaları çöpe atar ve yığınlar tutarsız kalır ve orijinal set sadece bir yığını diğerinin içine yerleştirerek yeniden oluşturulamaz. Buna örnekler:
[[1,3,2],[4]] (the kid tried to build a tower by placing a bigger bucket
over a smaller one, we would need to reorder the buckets
first)
[[1,3,4],[2]] (the kid left aside an unordered bucket, we would need to remove
bucket #1 from pile #1 before restacking)
[[1,2,3],[5]] (the kid lost a bucket, we need to find it first)
Meydan okuma
Bir dizi küme kümesini temsil eden tamsayıların bir listesi göz önüne alındığında, eğer listeler kolay bir şekilde yeniden istiflenebilir küme kümesini veya başka bir durumda falsey'i temsil ederse bir gerçeğe uygun değer döndürür.
- Giriş, her yığın için kovaları yukarıdan aşağıya temsil eden tamsayıların bir listesi olarak verilecektir.
- Boş başlangıç yığınları olmayacak (
[[1,2,3],[],[4,5]]
girdi olarak elde edemezsiniz ). - Toplam kova sayısı makul bir tamsayı aralığında olabilir.
- Çocuğumun yalnızca bir kova grubu var, bu yüzden yinelenen öğeler olmayacak.
- Gerçek veya falsey için herhangi iki tutarlı (ve tutarlı) değer seçebilirsiniz.
- Kovalar # 1 ile # N
N
arasında, tam sayı listelerinde en büyük tam sayı olarak etiketlenir . Benim çocuğum hala sıfır kavramını bilmiyor. - Girdiyi, bir dizi kümeyi temsil ettiği sürece makul bir biçimde alabilirsiniz. Girdiyi alma şeklinizi değiştirirseniz, cevabınıza sadece belirtin.
- Bu kod golf , yani her dil için en kısa program / işlev kazanabilir!
Örnekler
Input: [[4,5],[9,10],[1,2,3],[6,7,8]]
Output: Truthy
Input: [[6,7,8,9,10],[1],[2],[3,4,5],[11,12,13]]
Output: Truthy
Input: [[2,3,4],[1],[5,6,7]]
Output: Truthy
Input: [[1,2],[5,6],[7,8,9]]
Output: Falsey (buckets #3 and #4 are missing)
Input: [[2,3,4],[5,6,7]]
Output: Falsey (bucket #1 is missing)
Input: [[1,3,4],[5,7],[2,6]]
Output: Falsey (non-restackable piles)
Input: [[1,4,3],[2],[5,6]]
Output: Falsey (one of the piles is a tower)