9. 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) {
        
        if(x<0) return false;
        long long reverse_x = 0;
        int temp_x = x;
        while(temp_x!=0)
        {
            int mod = temp_x % 10;
            reverse_x += mod;
            reverse_x *=10 ;
            temp_x /=10;
        }
        
        reverse_x /= 10;
        //printf("%d", reverse_x);
        temp_x = x;
        while(reverse_x)
        {
            int x1 = temp_x % 10;
            int x2 = reverse_x % 10;
            if(x1 != x2)
                return false;
            temp_x /=10;
            reverse_x /=10;
        }
        
        
        return true;
    }
};

 

你可能感兴趣的:(回文,位操作)