1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| class Solution { public: bool isPalindrome(int x) { if (x < 0) return false; else { if(reverse(x) == x) { return true; }else { return false; } } }
int reverse(int x) { int rev = 0; while (x != 0) { int pop = x % 10; x /= 10; if (rev > INT_MAX / 10 || (rev == INT_MAX / 10) && (pop > INT_MAX % 10)) return 0; if (rev < INT_MIN / 10 || (rev == INT_MIN / 10) && (pop < INT_MIN % 10)) return 0; rev = rev * 10 + pop; } return rev; } };
|