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