如何在字串中獲取重複字母的最大計數?JavaScript
我們有一個包含一些重複字母的字串,例如:
const a = "fdsfjngjkdsfhhhhhhhhhhhfsdfsd";
我們的任務是編寫一個函式,返回連續相同字母的最大計數。例如,在上面的字串中,字母 h 連續出現了 11 次,因此我們的函式應該為該字串返回 11。
此問題非常適合使用滑動視窗演算法,其中穩定視窗將包含連續的字母,而包含不同元素的視窗是不穩定的。透過在末尾新增新字母並在開頭刪除重複字母,視窗傾向於變得穩定。
使用滑動視窗演算法的此函式的程式碼將是:
示例
const a = "fdsfjngjkdsfhhhhhhhhhhhfsdfsd"; const findMaximumRepeating = str => { let max = 0; for(let start = 0, end = 1; end < str.length; ){ if(str[end] === str[start]){ if(max < end - start + 1){ max = end - start + 1; }; end++; } else { start = end; }; }; return max; }; console.log(findMaximumRepeating(a));
輸出
控制檯中的輸出將是:
11
廣告