标签:style blog color io div log 不同的 on
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 };
Palindrome Number,布布扣,bubuko.com
标签:style blog color io div log 不同的 on
原文地址:http://www.cnblogs.com/Kai-Xing/p/3901392.html