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

JavaScript에서 두 개의 고유한 문자가 있는 가장 긴 문자열

<시간/>

문자열을 첫 번째 인수로, 숫자(문자열 길이보다 작은)를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다. 함수는 원래 문자열에서 문자를 삭제하고 최대 두 개의 고유한 문자를 포함하는 가장 긴 문자열이 되도록 새 문자열을 준비해야 합니다.

그런 다음 마침내 함수는 원하는 문자열의 길이를 반환해야 합니다.

예:입력 문자열이 -

인 경우
const str = 'kjeljsdl';

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

const output = 4;

최대 2개의 고유한 문자를 포함하는 가장 긴 부분 문자열이 'jljl'이기 때문에

예시

이에 대한 코드는 -

const str = 'kjeljsdl';
const longestSubstring = (str = '') => {
   const { length } = str;
   if (length <= 1){
      return 0;
   };
   const keys = [...new Set(str)];
   const arr = [];
   let max = 0;
   for (let i = 0; i < keys.length - 1; i++) {
      for (let j = i + 1; j < keys.length; j++) {
         arr.push(keys[i] + keys[j]);
      }
   }
   arr.forEach(item => {
      let sub = '';
      for (let i = 0; i < str.length; i++) {
         if (sub[sub.length - 1] === str[i]) {
            sub = '';
            break;
         }
         if (item.includes(str[i])) {
            sub += str[i];
         }
      }
      if (sub && sub.length > max){
         max = sub.length;
      };
   });
   return max;
}
console.log(longestSubstring(str));

출력

콘솔의 출력은 -

4