非反转的常数级别空间复杂度解法:
- 首先计算出数字的位数
- 然后从数字两边向中间遍历,判断对称部位的数字是否相等
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;
}
};
京公网安备 11010502036488号