เราต้องเขียนฟังก์ชัน nearestPalindrome() ที่รับตัวเลข n และคืนค่าตัวเลข palindrome ที่ใกล้ที่สุดกับ n
ตัวอย่างเช่น:
- ถ้าตัวเลขอินพุตคือ 264 ผลลัพธ์ควรเป็น 262
- ถ้าตัวเลขอินพุตคือ 7834 ผลลัพธ์ควรเป็น 7887
โดยพื้นฐาน แนวทางคือ แบ่งตัวเลขเป็นสองครึ่ง (ตามความยาว) และคืนค่าตัวเลขใหม่ที่เป็นครึ่งแรกต่อสองครั้ง
ตัวอย่างโค้ด
const findNearestPalindrome = num => {
const strNum = String(num);
const half = strNum.substring(0, Math.floor(strNum.length / 2));
const reversed = half.split("").reverse().join("");
const first = strNum.length % 2 === 0 ? half : strNum.substring(0, Math.ceil(strNum.length / 2));
return +(first + reversed);
};
console.log(findNearestPalindrome(235));
console.log(findNearestPalindrome(23534));
console.log(findNearestPalindrome(121));
console.log(findNearestPalindrome(1221));
console.log(findNearestPalindrome(45));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
232 23532 121 1221 44