https://leetcode.com/problems/palindrome-number
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 Output: true Example 2: Input: -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome. Example 3: Input: 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome. Follow up: Coud you solve it without converting the integer to a string?
class Solution { public: bool isPalindrome(int x) { } };
class Solution { public: bool isPalindrome(int x) { if (x < 0) return false; if (x < 10) return true; // for example x = 12345, // finally, rightDigit = 5, // x = 1, // x1 = 234, // x2 = 432 int rightDigit = x % 10; x = x / 10; int x2 = 0; int x1 = 0; int base = 1; while (x > 9){ int digit = x % 10; x = x / 10; x2 = x2 * 10 + digit; x1 = x1 + digit * base; base *= 10; } return x == rightDigit && x1 == x2; } };