Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาความยาวของสตริงพาลินโดรมที่ยาวที่สุด JavaScript


ให้สตริง s ซึ่งประกอบด้วยอักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ เราต้องคืนค่าความยาวของพาลินโดรมที่ยาวที่สุดที่สามารถสร้างด้วยตัวอักษรเหล่านั้นได้ ตัวอักษรใช้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ เช่น "Aa" ไม่ถือว่าเป็นพาลินโดรมที่นี่

ตัวอย่างเช่น −

หากสตริงอินพุตเป็น −

const str = "abccccdd";

ผลลัพธ์ควรเป็น 7

เพราะหนึ่ง palindrome ที่ยาวที่สุดที่สามารถสร้างได้คือ "dccaccd" ซึ่งมีความยาวเท่ากับ 7

ตัวอย่าง

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