配列内の指定された要素の深さを返す関数を作成する必要があります(例: 「C」は、「E」、それべき戻り0、それがなければならない戻り2等 配列、機能すべきリターン-1には指定された要素がありません場合について配列の配列(またはリストのリストなど)内の指定された要素の深さの検索
def array[] = {"a", {"b", {"c"}, "d"}, {{{}}}, "e"};
。 、
は、私は何度か試してみたが、私は、エレガントな(と作業...)ソリューションをさっぱりだがこれだけ:
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
清算をありがとう - 私は今日何かを学んだ。 :) –