배열의 지정된 요소의 깊이를 반환하는 함수 (의사 코드 사용)를 작성했습니다 (예 : 내부의 선택적 배열 포함). "E"를배열 배열 (또는리스트 목록 등)에서 지정된 요소의 깊이 찾기
def array[] = {"a", {"b", {"c"}, "d"}, {{{}}}, "e"};
어레이 내에 지정된 요소가없는 경우는해야 "C"에 대한 0을 반환하면, 그것을 반환해야 등 2 , 함수는 -1을 리턴해야한다. ,
나는 몇 번 시도했지만, 나는 우아한 (및 작업 ..) 솔루션에 대한 아무 생각도 없어에만이 :
func foo(array[], var element) {
int depth = 0;
boolean found = false;
boolean recursion = false;
boolean foundInRecursion = false;
for (int i = 0; i < array.length; i++) {
if (array[i] instanceof array[]) {
depth++;
recursion = true;
foo(array[i], element);
recursion = false;
} else if (array[i] == element) {
if (recursion) {
foundInRecursion = true;
} else {
found = true;
}
}
}
if (foundInRecursion) {
return depth;
} else if (found){
return 0;
} else {
return -1;
}
}
난 정말 어떤 도움을 주셔서 감사합니다 것입니다! 주셔서 감사합니다 의사에
코드는 그대로 작동합니다. 모든 것을 꼬리 재귀 적으로 만들기 위해 현재의 깊이를 전달하는 것이 가능합니다. 더 명확한 방법으로 아이디어를 보여줄 수는 없습니다. 명확한 설명을 주신 덕분에 – avysk
- 오늘 뭔가를 배웠습니다. :) –