음이 아닌 정수로 구성된 N 차원 직교 (비정규) 배열과 반전 할 차원 표시가 있으면 배열을 반환하지만 해당 차원을 따라 반전됩니다. 표시는 길이 N의 부울 목록 또는 0 또는 1에서 색인 된 첫 번째 N 차원의 서브 세트 목록으로 제공 될 수 있습니다.
입력 형식을 명시하십시오. 코드 설명은 대단히 감사합니다.
연습 예제
우리는 2 층 3 열 4 열 3D 배열을 제공받습니다.
[[[ 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](0 인덱스리스트)
[1,3](1 인덱스리스트)
첫 번째 차원과 마지막 차원의 순서, 즉 행과 레이어 (행)의 요소 (각 레이어의 행은 아님)의 순서를 바꿔야합니다. 먼저 (실제 순서는 중요하지 않습니다) 레이어의 순서를 반대로 바꿉니다.
[[[13,14,15,16],
[17,18,19,20],
[21,22,23,24]],
[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12]]]
그런 다음 각 행의 요소 순서를 반대로 바꿉니다.
[[[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,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임의의 배열에 대해서는 작동하지만 첫 번째 수준에만 관심), 제네릭 또는 재귀 클래스 (기능에 따라 유형 / 객체 클래스) 또는 OOP이지만 유사한 유스 케이스). 후자는 일반적으로 훨씬 더 장황합니다.