LeetCode 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?

 

解法:

判断是否回文数,若x是负数,必不是回文数,否则将x按低位到高位颠倒,判断与原数是否相同,则可判断是否回文数。

 

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0) return false;
        if(x==0) return true;
        
        
        int x1 = x;
        long x2 = 0;
        
        while(x1>0)
        {
            x2 = x2*10+(x1%10);
            x1 /= 10;
        }
        return x2==x;
    }
}

 

posted @ 2020-03-19 00:12  好麻烦快点  阅读(85)  评论(0编辑  收藏  举报