Leetcode-9 Palindrome Number
阿新 • • 發佈:2018-12-21
題目:判斷一個數是不是迴文數
簡單題,不用轉換為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); } }