Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm thế nào để có được số lượng tối đa các ký tự lặp lại trong một chuỗi? JavaScript

Chúng tôi có một chuỗi chứa một số chữ cái lặp lại như thế này -

const a = "fdsfjngjkdsfhhhhhhhhhhhfsdfsd";

Công việc của chúng ta là viết một hàm trả về số lượng tối đa các chữ cái giống nhau liên tiếp trong astreak. Giống như trong chuỗi trên, chữ h xuất hiện 11 lần liên tiếp, vì vậy hàm của chúng ta sẽ trả về 11 cho chuỗi này.

Vấn đề này là một ứng cử viên sáng giá cho thuật toán cửa sổ trượt này, ở đây một cửa sổ ổn định sẽ là một cửa sổ chứa các chữ cái liên tiếp và một cửa sổ chứa các phần tử khác nhau là không ổn định. bắt đầu.

Mã cho hàm sử dụng thuật toán cửa sổ trượt này sẽ là -

Ví dụ

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));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

11