如何在字串中獲取重複字母的最大計數?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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP