首页 > 代码库 > Palindrome Number
Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space.
按照palindrome的定义,负数一定不是palindrome number。而且palindrome number肯定是沿着中轴(可能为一个数或者两个相同的数,因一个数中数字的个数有关)对称的。所以很自然的想到分别比较数字的第一位数和最后一位数,第二位数和倒数第二位数,依次类推。如果有不同的,变返回false。但这里有个限制条件是without extra space,我以为是不能用任何额外的变量,所以在这个地方卡了很久。之后看网上答案,用了一个额外的变量来记录x的量级,对题目中要求的理解是关键啊。
1 class Solution { 2 public: 3 bool isPalindrome(int x) { 4 if(x < 0) return false; 5 int d = 1; 6 while(x/d >= 10) d *= 10; 7 while(x > 0){ 8 if(x/d != x%10) return false; 9 x = (x%d)/10;10 d /= 100;11 }12 return true;13 }14 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。