Bazen kodumda sürekli matris listeleri var:
[ [[1, 0],
[0, 1]],
[[1, 0],
[0,-1]],
[[0, 1],
[1, 0]],
[[0,-1],
[1, 0]] ]
Bu ekran gayrimenkulünün korkunç bir kullanımı. Onları yanyana yazmayı tercih ederim:
[ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
Bunun hâlâ sözdizimsel olarak geçerli bir yuvalanmış liste olduğunu göreceksiniz, artık sadece dikdörtgen değil ve çok farklı bir yapıya sahip (özellikle 1x1'den büyük bir matris eklediğimde daha da derinleşiyor). Bununla birlikte, ilk matris listesini bu yeni listeden yeniden oluşturmak mümkündür.
Gelecekte bu sözdizimini kullanabilmem için, yatay bir düzende yazılmış dizileri temsil ettikleri matris listesine dönüştüren bazı kodlar yazmanıza ihtiyacım var.
Yanıtların kaynak koddaki düzende 2B desen eşleştirmesi yapmadığından emin olmak için girişe yalnızca dizi nesnesi olarak veya bir dize temsili alırsanız, girişin nasıl yapıldığını belirten herhangi bir boşluk içermez. değişmez kodda yazılmıştır. Böylece şöyle bir girdi elde edersiniz:
[[[1, 0], [[1, 0], [[0, 1], [[0,-1], [0, 1]], [0,-1]], [1, 0]], [1, 0]]]
Ve çıktı şu dizi veya dizge gösterimi olmalıdır (yine, başka bir düzen gerekmez):
[[[1, 0], [0, 1]], [[1, 0], [0,-1]], [[0, 1], [1, 0]], [[0,-1], [1, 0]]]
Bu, iki bölümden oluşan bir mücadelenin ilk ve daha kolay kısmı. Bu bölümde, tüm matrislerin kare olduğunu ve aynı boyutlara sahip olduğunu ve yan yana düzgün bir şekilde hizalandığını varsayabilirsiniz. İkinci bölümde bu varsayımları rahatlatacağız.
kurallar
Girdi, iç içe geçmiş bir liste veya kanonik dize temsili olacaktır (tercih ettiğiniz dilde) ve sonucu aynı biçimde vermelisiniz. Sonuç daima en az bir matris içerecektir ve matrisler 1x1 kadar küçük olabilir. Matrisler, yalnızca mutlak değeri 128'den küçük olan (işaretli) tam sayıları içerir.
Bir program veya fonksiyon yazabilir ve giriş alma ve çıkış sağlama standart yöntemlerinden herhangi birini kullanabilirsiniz .
Herhangi bir programlama dilini kullanabilirsiniz , ancak bu boşlukların varsayılan olarak yasak olduğunu unutmayın .
Bu kod-golf , yani en kısa geçerli cevap - bayt olarak ölçülen - kazanır.
Test Kılıfları
Her test durumu onlar kodunda olacağı gibi liste matrisleri (bu yanyana güzel ortaya koydu) bir sahiptir değil girişinizi), b) yabancı boşluk olmadan biçimlendirilmemiş listesi ( bu ) sizin girdidir, c) beklenen çıktı.
Pretty: [ [[0]] ]
Input: [[[0]]]
Output: [[[0]]]
Pretty: [ [[-1]], [[0]], [[1]] ]
Input: [[[-1]],[[0]],[[1]]]
Output: [[[-1]],[[0]],[[1]]]
Pretty: [ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
Input: [[[1,0],[[1,0],[[0,1],[[0,-1],[0,1]],[0,-1]],[1,0]],[1,0]]]
Output: [[[1,0],[0,1]],[[1,0],[0,-1]],[[0,1],[1,0]],[[0,-1],[1,0]]]
Pretty: [ [[1, 0, 0], [[ 127, 63, 31], [[1, 0, 0], [[0, 0, 0],
[0, 1, 0], [ 15, 0, -15], [0, 0, 1], [0, 0, 0],
[0, 0, 1]], [ -31, -63, -127]], [0, 1, 0]], [0, 0, 0]] ]
Input: [[[1,0,0],[[127,63,31],[[1,0,0],[[0,0,0],[0,1,0],[15,0,-15],[0,0,1],[0,0,0],[0,0,1]],[-31,-63,-127]],[0,1,0]],[0,0,0]]]
Output: [[[1,0,0],[0,1,0],[0,0,1]],[[127,63,31],[15,0,-15],[-31,-63,-127]],[[1,0,0],[0,0,1],[0,1,0]],[[0,0,0],[0,0,0],[0,0,0]]]
[([1, 0], [0, 1]), ([1, 0], [0, -1]), ([0, 1], [1, 0]), ([0, -1], [1, 0])]
Üçüncü test çantası için geçerli çıktı mı ? Karışık liste ve demet.
[([1,0], ([1, 0}, ...
ve bu size ek bilgi verecektir.