我创建了一个函数(使用伪代码),它返回数组中指定元素的深度(内置可选数组),例如:
def array[] = {"a", {"b", {"c"}, "d"}, {{{}}}, "e"};
对于" e"它应该返回0,对于" c"它应该返回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;
}
}
我真的很感激任何帮助! 感谢