Find the Longest Word in a String


找到提供的句子中最長的單詞,並計算它的長度。

函數的返回值應該是一個數字。

這是一些對你有幫助的資源:

第一種想法就是,先定一個小變量,來他一個0;然后把每個單詞的長度與它比較,把長度大的賦值給該變量,最后返回該變量;

function findLongestWord(str) {
   var array=str.split(' ');   //分割句子為單詞,保存在數組array里
   var result=0;         //先定一個小目標
     for(var i=1;i<array.length;i++){  //遍歷單詞
        if (result<=array[i].length) {     // 單詞長度與result比較
             result=array[i].length;    //長單詞長度賦值給result並進行下一次比較
          }
      }
   return result;   // 返回結果
}

第二種方法就是利用數組sort()方法,sort()方法需要接受一個比較函數,該函數要比較兩個值,然后返回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:

  • 若 a 小於 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小於 0 的值。
  • 若 a 等於 b,則返回 0。
  • 若 a 大於 b,則返回一個大於 0 的值。

然后我們就能實現下面的 解法

function findLongestWord(str) {
    var arry=str.split(' ');
      arry.sort(function(f,n){
         return n.length-f.length;
       });
     return arry[0].length;
}

第三種方法,直接O(n)時間復雜度實現:

function findLongestWord(str) {
  var max = 0;
  var temp = 0;
  for(var i=0;i<str.length;i++){
    temp++;
    if(str[i]==' '){
      if(temp>max){
        max = temp-1;
      }
      temp = 0;
    }
  }
  if(temp>max){
    max = temp;
  }
  return max;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM