Palindrome Number(判断一个整数是否是回文串) leetcode9


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?


public boolean isPalindrome(int x) {
        if(x<0)
            return false;
        String res=x+"";
        //String res=Integer.toString(x);
        //排除‘-’的回文串
        //if(res.charAt(0)=='-')
            //res=res.substring(1);
        
        int middle=res.length()/2;
        if(res.length()%2==0){
            for(int i=middle-1,j=middle;i>=0&&j<res.length();){
                if(res.charAt(i--)!=res.charAt(j++))
                    return false;
            }
        }else{
            for(int i=middle-1,j=middle+1;i>=0&&j<res.length();){
                if(res.charAt(i--)!=res.charAt(j++))
                    return false;
            }
        }
        return true;
        
    }

猜你喜欢

转载自blog.csdn.net/m0_37402140/article/details/80344675