首页 > 代码库 > leetcode 9
leetcode 9
判断一个数是否为回文数,不利用额外的空间。
思路:将数反转后进行比较。
注意:反转之后数越界的判断,若越界,则不是回文数;负数不是回文数;
代码如下:
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 else19 {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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。