LeetCode9. Palindrome Number---Java

题目:

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 boolean isPalindrome(int x) {
        if(x<0){
            return false;
        }
        int num=1;
        while(x/num>=10){
            num=num*10;
        }
        while(x>0){
            int last=x%10;
            int first=x/num;
            if(last!=first){
                return false;
            }
            x=(x%num)/10;
            num=num/100;
        }
        return true;
    }
}

看到别人的令一种解法,将数字进行翻转后,进行比较。

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

你可能感兴趣的:(LeetCode)