非反转的常数级别空间复杂度解法:
- 首先计算出数字的位数
- 然后从数字两边向中间遍历,判断对称部位的数字是否相等
class Solution { public: /** * * @param x int整型 * @return bool布尔型 */ bool isPalindrome(int x) { // write code here if (x < 0) return false; int digits = 0, y = x; while(y) { ++digits; y /= 10; } for (int i = 0; i < digits/2; ++i) { int a = pow(10, i), b = pow(10, digits-1-i); if (x / a % 10 != x / b % 10) return false; } return true; } };