您的尝试很好,但是还不够。这是基于您的正确实现:
public static int indexOf(char ch, String str) { // Returns the index of the of the character ch if (str == null || str.equals("")) { // base case: no more string to search; return -1 return -1; } else if (ch == str.charAt(0)) { // base case: ch is at the beginning of str; return 0 return 0; } // recursive step int subIndex = indexOf(ch, str.substring(1)); return subIndex == -1 ? -1 : 1 + subIndex;}
您的尝试存在两个问题:
在这一
else if部分中,您已经找到了角色,因此正确的做法是停止递归,但您仍在继续。
在最后一个return语句中,您需要在递归调用中加1(如果最终找到了该字符),作为累加总索引号的一种方式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)