码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 9

时间:2016-09-01 21:34:27      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

判断一个数是否为回文数,不利用额外的空间。

思路:将数反转后进行比较。

注意:反转之后数越界的判断,若越界,则不是回文数;负数不是回文数;

代码如下:

 1 class Solution {
 2 public:
 3     bool isPalindrome(int x) {
 4         int result = 0;
 5         int y = x;
 6         if(x == 2147483648 || x < 0)
 7         {
 8             return false;
 9         }
10         if(abs(x) < 1000000000)
11         {
12            while(x != 0)
13            {
14               result = result * 10 + x % 10;
15               x = x / 10;
16            }
17        }
18        else
19        {
20            int a[10] = {2,1,4,7,4,8,3,6,4,8};
21            int i = 0;
22            int flag = abs(x);
23            while(flag != 0)
24            {
25                if((flag % 10) > a[i])
26                {
27                     return 0;
28                }  
29                else if((flag % 10) < a[i])
30                {
31                    while(x != 0)
32                    {
33                        result = result * 10 + x % 10;
34                        x = x / 10;
35                    }
36                    if(result == y)
37                    {
38                         return true;
39                    }
40               }
41               flag /= 10;
42               i++;
43             }
44         }
45         if(result == y)
46         {
47             return true;
48         }
49         return false;
50     }
51 };

 

leetcode 9

标签:

原文地址:http://www.cnblogs.com/shellfishsplace/p/5831276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!