如何在字串中獲取重複字母的最大計數?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

更新於: 2020-08-28

1K+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告