回文判断一般会用双指针的技巧,整数可以转换为数组或字符串来进行指针操作。
字符串转换
class Solution {
public:
bool isPalindrome(int x) {
string s = to_string(x);
int left = 0, right = s.size()-1;
while(left < right){
if(s[left] != s[right]){
return false;
}
left++;
right--;
}
return true;
}
};
数组转换(-121正着看,倒着看121-,所以负数都不算回文)
class Solution {
public:
bool isPalindrome(int x) {
if(x < 0) return false;
vector<int> num;
int left = 0, right = 0;
while(x){
int unit = x % 10;
x /= 10;
num.push_back(unit);
}
right = num.size()-1;
while(left < right){
if(num[left] != num[right]){
return false;
}
left ++;
right --;
}
return true;
}
};
&spm=1001.2101.3001.5002&articleId=151903839&d=1&t=3&u=9ead3f74c99e456999c1b61a1e519e2d)
520

被折叠的 条评论
为什么被折叠?



