Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.

题目翻译:
给定一个数字,要求判断这个数字是否为回文数字. 比如121就是回文数字,122就不是回文数字.

解题思路:
这道题很明显是一道数学题,计算一个数字是否是回文数字,我们其实就是将这个数字除以10,保留他的余数,下次将余数乘以10,加上这个数字再除以10的余数.

需要注意的点:

  1. 负数不是回文数字.
  2. 0是回文数字.

时间复杂度:
logN

代码如下:

  1. class Solution {
  2. public:
  3. bool isPalindrome(int x) {
  4. if(x < 0)
  5. return false;
  6. else if(x == 0)
  7. return true;
  8. else
  9. {
  10. int tmp = x;
  11. int y = 0;
  12. while(x != 0)
  13. {
  14. y = y*10 + x%10;
  15. x = x/10;
  16. }
  17. if(y == tmp)
  18. return true;
  19. else
  20. return false;
  21. }
  22. }
  23. };