과제에 대해 문장에서 재귀를 사용하여 가장 긴 단어를 찾아야합니다. 저는 문장의 처음 두 단어를 취하여 비교 한 다음 두 문장 중 더 긴 단어를 취해 나머지 문장의 다음 단어와 비교하는 방법을 썼습니다. 내 논리가 체크 아웃하지만 메서드가 올바르게 작동하지 않습니다. 공백을 제거하는 우연이 있다고 생각합니다. 이것이 작동하지 않는 이유입니다.재귀를 사용하여 문장에서 가장 긴 단어 찾기 (Java)
public static String longestWord(String sentence)
{
if (sentence.indexOf(' ') == -1) { // IF sentence only has one word
return sentence;
}
String word1 =(sentence.indexOf(" ") != -1)? sentence.substring(0, sentence.indexOf(" ")):
sentence.substring(0);
String temp = sentence.substring(sentence.indexOf(" ")+1);
String word2 = null;
String rest = null;
if (sentence.indexOf(" ") != -1) {
word2 = (temp.indexOf(" ") != -1)? temp.substring(0, temp.indexOf(" ")+1):
temp.substring(0);
rest = temp.substring(temp.indexOf(" ")+1);
}
if (word1.length() > word2.length()) {
return longestWord(word1 + rest);
}
if (word2.length() > word1.length()) {
return longestWord(word2 + rest);
}
return sentence;
}
당신은'같이 IndexOf ('')'와'같이 IndexOf를 ("")를 호출'; 그게 의도적 인거야? 첫 번째 테스트가 통과하면 어떤 상황에서 두 번째 테스트가 실패 할 수 있습니까? –
"제대로 작동하지 않는다"고하면 무슨 뜻입니까? 샘플 입출력을 제공하면 도움이 될 것입니다. – Jeff
@ Jeff 입력 : 가장 긴 단어는 수박입니다. 산출 : watermelonwatermelon – biohax2015