İkili bir 3D dizisi verildiğinde, her katman için sütunlarının her birini, üzerindeki katmanın sütunlarının ikili kodlamasıyla gösterildiği kadar döngüsel olarak yukarı döndürün ve ardından satırlarının her birini belirtildiği kadar döngüsel olarak sola döndürün altındaki katmanın satırlarının ikili kodlaması.
Her zaman en az üç katman olacaktır. Üst katmanın sütunları ve alt katmanın satırları döndürülmemelidir.
Walk-yoluyla
Küçük 4 katmanlı, 2 satırlı, 3 sütunlu dizi ile başlayalım:
[[[1,0,1],
[1,0,0]],
[[1,0,1],
[0,1,1]],
[[0,1,1],
[1,1,1]],
[[1,1,0],
[1,1,1]]]
İlk adım, her katmanın sütunları ve satırları tarafından ikili olarak kodlanan sayıları değerlendirmektir:
3 0 2
5 [[[1,0,1],
4 [1,0,0]],
2 1 3
5 [[1,0,1],
3 [0,1,1]],
1 3 3
3 [[0,1,1],
7 [1,1,1]],
3 3 1
6 [[1,1,0],
7 [1,1,1]]]
İlk katman, [[1,0,1],[1,0,0]]
sütunlarını döndürmeyecektir, ancak sıraları sırasıyla 5 adım ve 3 adımda döngüsel olarak döndürülecek ve böylece olacaktır [[1,1,0],[1,0,0]]
.
İkinci katman, [[1,0,1],[0,1,1]]
sütunlarını sırasıyla 3, 0 ve 2 basamaklar [[0,0,1],[1,1,1]]
halinde periyodik olarak döndürecek ve satırlar sırasıyla 3 ve 7 basamaklar halinde, görünür bir değişiklik olmadan sırasıyla döngüsel olarak sola döndürülecektir. 2, 1 ve 3 basamak yukarı döndürülmüş
üçüncü katman [[0,1,1],[1,1,1]]
aynı kalır ve sola 6 ve 7 adım döndürmek de hiçbir şey yapmaz.
Son olarak, [[1,1,0],[1,1,1]]
1, 3 ve 3 adım yukarı döndürülen dördüncü katman, [[1,1,1],[1,1,0]]
ancak son katman olduğu için sıraları daha sonra döndürülmez.
Tüm katmanları tekrar bir araya getirmek, kendiliğinden dönen ikili 3D dizisini verir:
[[[1,1,0],
[1,0,0]],
[[0,0,1],
[1,1,1]],
[[0,1,1],
[1,1,1]],
[[1,1,1],
[1,1,0]]]
Örnek durumlar:
[[[1,0,1],[1,0,0]],[[1,0,1],[0,1,1]],[[0,1,1],[1,1,1]],[[1,1,0],[1,1,1]]]
verir
[[[1,1,0],[1,0,0]],[[0,0,1],[1,1,1]],[[0,1,1],[1,1,1]],[[1,1,1],[1,1,0]]]
[[[1]],[[1]],[[0]]]
verir
[[[1]],[[1]],[[0]]]
[[[1,0,1],[1,0,1],[1,0,1]],[[0,0,1],[0,0,1],[0,0,1]],[[1,0,0],[1,0,1],[0,0,1]]]
verir
[[[0,1,1],[0,1,1],[0,1,1]],[[0,1,0],[1,0,0],[0,1,0]],[[1,0,1],[1,0,1],[0,0,0]]]
None
Döndürme dilimleme sırasında idare ettiğiniz için her ikisinin de['0']
olabileceğine inanıyorum[[]]
.