java中递归的最长单词
可能重复:java中递归的最长单词,java,string,Java,String,可能重复: 我需要帮助查找java中最长的单词。。我想我的基本情况是对的,但是递归对我来说不起作用。。任何帮助都将不胜感激 public static String longestWord(String sentence) { int spaceIndex = sentence.indexOf(" "); if (spaceIndex == -1) { return sentence; } Strin
我需要帮助查找java中最长的单词。。我想我的基本情况是对的,但是递归对我来说不起作用。。任何帮助都将不胜感激
public static String longestWord(String sentence) {
int spaceIndex = sentence.indexOf(" ");
if (spaceIndex == -1) {
return sentence;
}
String firstWord = sentence.substring(0, spaceIndex);
String rest = sentence.substring(spaceIndex);
rest = rest.trim();
if (firstWord.length() >= longestWord(rest).length() ) {
IO.outputStringAnswer(firstWord);
return firstWord;
}
else {
IO.outputStringAnswer(rest);
return rest;
}
}
在else的情况下,您只需调整输出——现在它返回(并输出)句子的其余部分,而您希望它返回其余部分中最长的单词
要理解这个问题,请用一个例句和一些纸,手工做你的算法
- 首先,尝试简单的句子(一个单词,两个单词)。它似乎在这里起作用
- 接下来,用一个三个字的句子,比如
?。这里行吗?若否,原因为何?你需要改变什么“它对吗”
first
和longestWord(rest)
之间最长的单词,但是如果longestWord(rest)
更长,你实际返回什么?最长的单词..嗯,不完全是,你返回句子的其余部分…我不明白你在说什么我怎么能返回句子的其余部分我需要最长的单词..你可以,如果你错了返回其余部分代码>