如何获取字符串中重复字母的最大数量?的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

以上是 如何获取字符串中重复字母的最大数量?的JavaScript 的全部内容, 来源链接: utcz.com/z/338559.html

回到顶部