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