ให้สตริง 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