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

가장 긴 회문 문자열의 길이 찾기 JavaScript

<시간/>

소문자 또는 대문자로 구성된 문자열 s가 주어지면 해당 문자로 만들 수 있는 가장 긴 회문의 길이를 반환해야 합니다. 문자는 대소문자를 구분합니다. 예를 들어 "Aa"는 여기에서 회문으로 간주되지 않습니다.

예를 들어 -

입력 문자열이 -

인 경우
const str = "abccccdd";

출력은 7이어야 합니다.

왜냐하면 건설할 수 있는 가장 긴 회문은 길이가 7인 "dccaccd"이기 때문입니다.

예시

const str = "abccccdd";
const longestPalindrome = (str) => {
   const set = new Set();
   let count = 0;
   for (const char of str) {
      if (set.has(char)) {
         count += 2; set.delete(char);
      }
      else {
         set.add(char);
      }
   }
   return count + (set.size > 0 ? 1 : 0);
};
console.log(longestPalindrome(str));

출력

콘솔의 출력은 -

7