[LeetCode] 回文数字 Palindrome Number
2013-02-25 11:25
323 查看
给你一个正整数,如何判断它是不是回文数字?
例如,12344321是回文数字,1234593不是回文数字。
方法一:先把原先的数字反转,然后看反转数字和原来的数字是否相等。反转的算法如下:
方法一的问题是,有可能出现overflow。下面给出算法二。算法二比较第一个数字和最后一个数字。如果不等,那么就不是回文数字。如果相等,那么就继续比较第二个数字和倒数第二个数字。依次类推。
例如,12344321是回文数字,1234593不是回文数字。
方法一:先把原先的数字反转,然后看反转数字和原来的数字是否相等。反转的算法如下:
int reverse(int num) { assert(num >= 0); // for non-negative integers only. int rev = 0; while (num != 0) { rev = rev * 10 + num % 10; num /= 10; } return rev; }
方法一的问题是,有可能出现overflow。下面给出算法二。算法二比较第一个数字和最后一个数字。如果不等,那么就不是回文数字。如果相等,那么就继续比较第二个数字和倒数第二个数字。依次类推。
bool isPalindrome(int x) { if (x < 0) return false; int div = 1; while (x / div >= 10) { div *= 10; } while (x != 0) { int l = x / div; int r = x % 10; if (l != r) return false; x = (x % div) / 10; div /= 100; } return true; }
相关文章推荐
- leetcode第9题,判断数字是否是回文数字的两种方法
- LeetCode—Palindrome Number 数字是否是回文数字
- Leetcode刷题记——9. Palindrome Number(回文数字)
- LeetCode 9. Palindrome Number(回文数字)
- leetCode 9.Palindrome Number (回文数字) 解题思路和方法
- Leetcode 07 Reverse Integer(数字反转) && 09 Palindrome number(回文判断)
- leetcode 564. Find the Closest Palindrome 寻找最近回文数字
- leetcode 479. Largest Palindrome Product 最大的回文数字 + 直接暴力真好
- LeetCode-9.Palindrome Number(求回文数字)
- [LeetCode] Palindrome Number 验证回文数字
- 【Leetcode】回文数字Palindrome
- 【leetcode】对撞指针应用之回文字符串判断(忽略大小写,以及出数字外其他字符)
- LeetCode 9 Palindrome Number(回文数字判断)
- Palindrome Number 判断一个数字是否是回文数字@LeetCode
- [LeetCode 9] Palindrome Number -- 回文数字
- LeetCode (30) Palindrome Number (回文数字)
- LeetCode | Palindrome Number(回文数字)
- LeetCode 9 Palindrome Number 回文数字
- leetcode——Palindrome Number 判断整数数字是否为回文(AC)
- LeetCode 9. Palindrome Number (回文数字)