1. 程式人生 > >Leetcode-9 Palindrome Number

Leetcode-9 Palindrome Number

題目:判斷一個數是不是迴文數

簡單題,不用轉換為String的方法做,浪費空間。

思路:

sum=sum*10+x%10;  效果等同於將sum之前的值左移一位,然後加上x丟掉的一位

x=x/10;   效果等同於去除x的最後一位

如果為奇數,迴文數會有sum==x為true,如果為偶數,sum/10==x為true。

注意點:

如果x為0結尾的數,只有0滿足條件,可以一開始排除除0以外以0結尾的數。

也可以判定迴圈中如果出現sum=0而x!=0,此時原數肯定為除0以外以0結尾的數,return false。

貼上程式碼

class Solution {
    public boolean isPalindrome(int x) {
        
        if(x<0||(x!=0&&x%10==0))
        {
            return false;
        }
        int r=0;
        
        while(x>r)
        {
          r=r*10+x%10;
          x=x/10;
     
        
            
            
        }
        
        return r==x||x==(r/10);
        
        
    }
}