搜尋

首頁  >  問答  >  主體

使用JavaScript函數搜尋子字串

我想用JavaScript語言寫一段程式碼,可以搜尋一個單字中字母的重複次數,就像這段程式碼一樣,但是要用一種更簡短的方式 o(n)。

function naiveSearch(long, short){
    var count = 0;
    for(var i = 0; i < long.length; i++){
        for(var j = 0; j < short.length; j++){
           if(short[j] !== long[i+j]) break;
           if(j === short.length - 1) count++;
        }
    }
    return count;
}
naiveSearch("lorielol loled", "lol")

P粉098979048P粉098979048480 天前532

全部回覆(1)我來回復

  • P粉958986070

    P粉9589860702023-09-14 00:42:16

    使用.substring().slice()方法而不是巢狀迴圈。

    function naiveSearch(long, short) {
      var count = 0;
      for (var i = 0, limit = long.length - short.length; i < limit; i++) {
        if (long.substring(i, i + short.length) == short) {
          count++;
        }
      }
      return count;
    }
    
    console.log(naiveSearch("lorielol loled", "lol"));

    回覆
    0
  • 取消回覆