难度:简单
开始有点问题,溢出了。
进阶版,没有将int转换为字符串。
正确解法:
class Solution {
public:
int my_pow(int a, int b){
int result = 1;
for(int i = 0; i < b; i ++){
result *= a;
}
return result;
}
bool isPalindrome(int x) {
int num = 0;
if(x < 0)return false;
for(int i = 0; i < 10; i++){
int k = my_pow(10, i);
if(x / k != 0){
num++;
}
else{
break;
}
}
for(int i = 0; i < (num + 1) / 2; i++){
int j = num - i - 1;
if(i == j)return true;
int num_i = 0;
if(j == 10){
num_i = x / my_pow(10, j - 1);
}
else{
num_i = x / my_pow(10, j) % 10;
}
int num_j = x / my_pow(10, i) % 10;
if(num_i != num_j)return false;
}
return true;
}
};