문자열을 받는 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