我正在尝试查找字符串中字母的首次出现。例如,苹果中的p应该返回1。这是我拥有的:
// Returns the index of the of the character ch
public static int indexOf(char ch, String str) {
if (str == null || str.equals("")) {
return -1;
} else if(ch == str.charAt(0)) {
return 1+ indexOf(ch, str.substring(1));
}
return indexOf(ch, str.substring(1));
}
它似乎似乎没有返回正确的值。
您的尝试很好,但是还不够。这是基于您的正确实现:
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(如果最终找到了该字符),作为累加总索引号的一种方式。
我试图使用这个递归函数来找到回文字符串,但是代码输出术语<code>alia
问题内容: 如何递归地查找字符串中最长的单词? 编辑 说完了,谢谢大家。这是修改后的代码。 问题答案: 首先,让我们假设句子字符串参数没有任何前导或尾随空格。您可以通过调用trim()来处理递归情况。 然后,我们需要定义两种情况,即基本情况和递归情况。 基本情况是找不到空格,即传入的句子只是一个单词。在这种情况下,只需返回句子即可。 在递归的情况下,我们将得到第一个单词,其余的则与您一样。在句子的
我是Python的超级新手,并试图创建一个非常简单的函数,用于更大的地图着色程序。 该函数的思想是将一组变量归于不同的区域(string1),并将颜色分配给它们(r、g、b),然后通过递归地查看一组区域边界(string2)来测试这些区域是否接触到相同颜色的另一个区域,以找到匹配的变量颜色。 输入格式如下:("Ar, Bg, Cb","AB, CB, CA")将返回True,这意味着没有相同颜色的
我看到了这篇文章,它非常努力地解释了打印所有字符串的递归解决方案。 但当我们开始弹出堆栈时,我仍然无法得到部分。例如,递归一直进行到,在这里,基大小写遇到,它打印。但现在发生了什么?我们从函数调用堆栈弹出。我们用这个做什么等等? 谁能帮我解释一下吗? 另外,我需要一些关于时间复杂度的指示。不像完全的计算而是一些暗示。
我有一个字符串“1,3,5,7,9,11,12,14”,我想检查该字符串在java中是否包含“12,3,14”。 我的代码:
工作解决方案: 破“解”: 我们将单词字符定义为以下任一项: null null 第一行包含一个整数n,表示句子的数目。后面的每一行都包含一个由非单词字符分隔的单词组成的句子。下一行包含一个整数,表示查询的数量。后续行中的每一行都包含一个要检查的字符串。 制约因素 1≤n≤100 1≤q≤10 作为现有的子字出现时间。 作为悲观主义者的子词出现时间。 作为Optimist的子词出现时间。 whil