Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

두 개의 동일한 문자 사이에서 가장 긴 부분 문자열 찾기 JavaScript

<시간/>

문자열을 받는 JavaScript 함수를 작성해야 합니다. 함수는 두 개의 동일한 문자 사이에 끼워진 가장 긴 부분 문자열의 길이를 찾아 반환해야 합니다.

예를 들어 -

입력 문자열이 -

인 경우
const str = 'avbghvh';

그러면 출력은 다음과 같아야 합니다. -

const output = 3;

원하는 가장 긴 부분 문자열이 두 v 사이의 'bgh'이기 때문입니다.

예시

const str = 'avbghvh';
const longestSub = (str = '') => {
   const map = new Map();
   let max = -1;
   for(let i = 0; i < str.length; i++){
      if(map.has(str.charAt(i))){
         max = Math.max(max, i - map.get(str.charAt(i)) - 1);
      }else{
         map.set(str.charAt(i), i);
      };
   };
   return max;
};
console.log(longestSub(str));

출력

이것은 다음과 같은 출력을 생성합니다 -

3