9. Palindrome Number
Tags:
Easy
Skills:
Math
June 24, 2025
04:32 AM
No headings found
Loading content...
Related Posts
Leetcode
No headings found
Related Posts
Leetcode
Problem
Một số nguyên là palindrome nếu khi đọc từ trái → phải và từ phải → trái đều giống nhau. Vi dụ 121 là palindrome, còn 123 thì không
Approach - Math (không dùng chuỗi)
Solution
1function isPalindrome(x: number): boolean {
2 if (x < 0 || (x % 10 === 0 && x !== 0)) return false;
3 let reversed = 0;
4 while (x > reversed) {
5 reversed = reversed * 10 + x % 10;
6 x = Math.floor(x / 10)
7 }
8 return x === reversed || x === Math.floor(reversed / 10)
9};x % 10 : Lấy chữ số cuối cùng của số x. VD: x = 123, x % 10 = 3reversed * 10 : Dịch chuyển tất cả các chữ số của reversed sang trái một hàng (giống như thêm một chữ số mới vào cuối số reversed)reversed * 10 + x % 10 : Thêm chữ số cuối cùng của x vào cuối số reversedreversed), vòng lặp dừng lại khi reversed >= x.x và reversed sẽ bằng nhau (12 và 12).reversed sẽ nhiều hơn x một chữ số (x = 12, reversed = 123). Chữ số dư ra chính là chữ số ở giữa, không ảnh hưởng đến tính đối xứng.Điều kiện x % 10 === 0 && x !== 0 được thêm vào để loại bỏ các số có chữ số tận cùng là 0 (trừ số 0), bởi vì: