刷LeetCode(9)——Palindrome Number
Code it now!https://leetcode.com/problems/palindrome-number/description/
Determine whether an integer is a palindrome. Do this without extra space.
这个题目可以参考第七题—-Reverse Integer来解。
不过有点疑问的是,负数都不是回文数字么?我认为负数是可以作为回文数字的。我的代码实现如下:
#include <iostream>
#include <string>
#include <limits.h>
#include <assert.h>
using namespace std;
class Solution {
public:
bool isPalindrome(int x) {
int num1 = x;
long long sum = 0;
if( x < INT_MIN || x > INT_MAX )
{
return false;
}
while( num1 )
{
sum = 10*sum + num1%10;
num1 /= 10 ;
}
if( sum > INT_MAX || sum < INT_MIN ){
return false;
}
return x == sum;
}
};
int main()
{
int num;
cin >> num;
cout << Solution().isPalindrome(num) << endl;
return 0;
}
如果想去掉负数就把上面代码中的INT_MIN全部改成0即可。
但是在Leetcode上运行测试的时候,会认为负数不应该是回文,错误如下图所示:
大家可以讨论讨论。
探讨了LeetCode第9题Palindrome Number的解决方案,并提出了一个考虑负数为回文数的实现方法。通过C++代码实现,判断一个整数是否为回文数,无需额外空间。
——Palindrome Number&spm=1001.2101.3001.5002&articleId=78502367&d=1&t=3&u=9e047032126d45cd95f473dce62bdf14)
966

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



