如何获取字符串中重复字母的最大数量?JavaScript

javascriptweb developmentobject oriented programming更新于 2025/10/21 23:40:17

我们有一个字符串,其中包含一些重复字母,例如 −

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

相关文章


有用资源