如何在字符串中获取重复字母的最大计数?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+ 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告