Computer >> 컴퓨터 >  >> 프로그램 작성 >> 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