我想用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粉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"));