2011-03-28 54 views
-1

可能重複:
How can I find the longest word in a string recursively?最長的單詞遞歸

我需要在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; 
     } 
    } 
+1

這是否需要遞歸地完成? – Mike 2011-03-28 20:48:17

+0

是的,這是大問題,我知道如何去做其他方式..這很容易。我被困在da的最後部分.. – user647207 2011-03-28 20:49:27

+1

老師的電子郵件是什麼?我需要跟他/她說話... – 2011-03-28 20:52:41

回答

0

你只需要適應你的輸出在其他情況 - 現在它返回(並輸出)句子的其餘部分,而您希望它返回剩下的最長單詞。


要理解問題,請拿一個例句和一些紙張,並手工完成您的算法。

  • 首先,試一下簡單的句子(一個單詞,兩個單詞)。它似乎在這裏工作。
  • 接下來,採取一個3字的句子,如"Was it right"?它在這裏工作嗎?如果不是,爲什麼?你需要改變什麼?
+0

你是否適合適應.. – user647207 2011-03-28 20:53:57

+0

適應=改變。 – 2011-03-28 20:57:11

+0

我該如何修復 – user647207 2011-03-28 20:58:04

0

這幾乎是正確的,但你在else塊中返回錯誤的值。

+0

我該如何解決這個問題.. – user647207 2011-03-28 20:57:40

+0

你想返回'first'和'longestWord(rest)'之間最長的單詞,但是如果'longestWord(rest)'更長,你實際返回什麼? – MByD 2011-03-28 21:00:40

+0

這個詞是最長的.. – user647207 2011-03-28 21:03:22