我在这里有这个递归,当我输入“ello”时,输出返回“ello”。 我以为它会回归“ellllloo”。我不跟随递归吗? 它一直在调用FN(str.substring(1));
return str.substring(0, 1) + FN(str.substring(1));
答案 0 :(得分:4)
没有' a'或者' h'在输入中,所以它总是会调用return str.substring(0, 1) + FN(str.substring(1));
直到长度为0:
FN("ello") =
"e" + FN("llo") =
"e" + "l" + FN("lo") = .... = "ello"
答案 1 :(得分:1)
每次递归都会占用剩余字符串的第一个字母:
"e" + FN("llo")
= "e" + "l" + FN("lo")
= "e" + "l" + "l" + FN("o") = "ello"
答案 2 :(得分:1)
使用
str.substring(0, 2)// instead of str.substring(0, 1)