Negatif olmayan tam sayıların N boyutlu ortogonal (düzensiz) bir dizisi ve hangi boyutların tersine döneceğine dair bir gösterge verildiğinde, diziyi döndürür, ancak bu boyutlar boyunca tersine çevirir. Endikasyon, N uzunluklu bir Boolean listesi veya 0 veya 1'den indekslenen ilk N boyutlarının bir alt kümesinin listesi olarak verilebilir.
Lütfen giriş biçimlerinizi belirtin. Kod açıklamaları çok takdir edilmektedir.
Walk-through örneği
2 katlı 3 sıra 4 sütun 3 boyutlu dizi verildi
[[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12]],
[[13,14,15,16],
[17,18,19,20],
[21,22,23,24]]]
ve biri
[true,false,true]
(Boole listesi)
[0,2]
(0 dizinli liste)
[1,3]
(1 dizinli liste)
İlk ve son boyutların sırasını değiştirmemiz gerekir, yani katmanların ve satırların öğelerinin (sütunların) olduğu, ancak her katmanın satırlarının değil. İlk önce (bunu yaptığınız asıl sipariş önemli değil) katmanların sırasını tersine çeviririz:
[[[13,14,15,16],
[17,18,19,20],
[21,22,23,24]],
[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12]]]
ve sonra her satırın elemanlarının sırasını tersine çeviririz:
[[[16,15,14,13],
[20,19,18,17],
[24,23,22,21]],
[[ 4, 3, 2, 1],
[ 8, 7, 6, 5],
[12,11,10, 9]]]
Test durumları
[[[1,2,3,4],[5,6,7,8],[9,10,11,12]],[[13,14,15,16],[17,18,19,20],[21,22,23,24]]]
[true,false,true]
/ [0,2]
/ [1,3]
↓
[[[16,15,14,13],[20,19,18,17],[24,23,22,21]],[[4,3,2,1],[8,7,6,5],[12,11,10,9]]]
[[1,2,3],[4,5,6]]
[true,false]
/ [0]
/ [1]
↓
[[4,5,6],[1,2,3]]
[[1],[4]]
[true,false]
/ [0]
/ [1]
↓
[[4],[1]]
[[7]]
[true,true]
/ [0,1]
/ [1,2]
↓
[[7]]
[1,2,3,4,5,6,7]
[true]
/ [0]
/ [1]
↓
[7,6,5,4,3,2,1]
[]
[true]
/ [0]
/ [1]
↓
[]
[[],[]]
[false,false]
/ []
/ []
↓
[[],[]]
[[[[3,1,4,1],[5,9,2,6]],[[5,3,5,8],[9,7,9,3]]],[[[2,3,8,4],[6,2,6,4]],[[3,3,8,3],[2,7,9,5]]]]
[true,false,true,true]
/ [0,2,3]
/ [1,3,4]
↓
[[[[4,6,2,6],[4,8,3,2]],[[5,9,7,2],[3,8,3,3]]],[[[6,2,9,5],[1,4,1,3]],[[3,9,7,9],[8,5,3,5]]]]
[[[[3,1,4,1],[5,9,2,6]],[[5,3,5,8],[9,7,9,3]]],[[[2,3,8,4],[6,2,6,4]],[[3,3,8,3],[2,7,9,5]]]]
[false,true,false,false]
/ [1]
/ [2]
↓
[[[[5,3,5,8],[9,7,9,3]],[[3,1,4,1],[5,9,2,6]]],[[[3,3,8,3],[2,7,9,5]],[[2,3,8,4],[6,2,6,4]]]]
[[[[3,1,4,1],[5,9,2,6]],[[5,3,5,8],[9,7,9,3]]],[[[2,3,8,4],[6,2,6,4]],[[3,3,8,3],[2,7,9,5]]]]
[false,false,false,false]
/ []
/ []
↓
[[[[3,1,4,1],[5,9,2,6]],[[5,3,5,8],[9,7,9,3]]],[[[2,3,8,4],[6,2,6,4]],[[3,3,8,3],[2,7,9,5]]]]
reverse
keyfi dizilerde çalışır, ancak yalnızca birinci seviyeye önem verir), jenerikler veya özyinelemeli sınıflar (işlevselliğe bağlı olarak tip / nesne sınıfları) veya OOP, ancak benzer kullanım durumu). İkinci ikisi genellikle çok daha ayrıntılıdır.