PROBLEM:
Determine whether an integer is a palindrome. Do this without extra space.
SOLVE(C++):
class Solution {
public:
bool isPalindrome(int x) {
if(x<0||(x%10==0&&x!=0))
return false;
int input=x,output=0;
for(;input>output;input/=10)
output=output*10+input%10;
return input==output||input==output/10;
}
};注意:如果是负数,则不是回文;如果用反转整数来做,需要创建比输入容量更大的变量以防止反转后溢出。这种反转一半的方法则可以避免该问题。需要注意两位数且个位上为0的数。
本文介绍了一种使用C++高效判断整数是否为回文数的方法,通过避免完全反转整个整数来减少额外的空间需求。这种方法适用于不创建额外变量以避免溢出的情况。
1209

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



