Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาความยาวพาลินโดรมที่ยาวที่สุดที่สร้างได้จากสตริงใน JavaScript


ภาพรวม

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

ตัวอย่าง

อินพุต: const str = "abccccdd";

เอาต์พุต: 7 เพราะพาลินโดรมที่ยาวที่สุดคือ "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