lintcode491.回文数
判断一个正整数是不是回文数。
回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。
注意事项
给的数一定保证是32位正整数,但是反转之后的数就未必了。
思路
- 题目给定32位正整数,反转后实际上也不会超过64位,故可以使用64位long保存(当然后患无穷)
- 先使用一个数temp存储传入的数,然后将其反转,称为sum
- 比较传入的数与sum的值大小即可
(但是里面会隐藏几个bug,比如传入的数扩展更大溢出怎么办;假定传入的数有问题怎么办;这个性能够好吗)
代码如下:
class Solution {
public:
/**
* @param num a positive number
* @return true if it's a palindrome or false
*/
bool palindromeNumber(int num) {
// Write your code here
long int temp = num;
long int sum = 0;
while(temp != 0) {
sum = sum * 10 + temp % 10;
temp = temp / 10;
}
if (sum == num) {
return true;
}
return false;
}
};