刷LeetCode(9)——Palindrome Number

来源:互联网 发布:c语言 取消包含头文件 编辑:程序博客网 时间:2024/06/11 12:27

刷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上运行测试的时候,会认为负数不应该是回文,错误如下图所示:
这里写图片描述
大家可以讨论讨论。