LEETCODE 9 Palindrome Number (JAVA題解)
阿新 • • 發佈:2019-01-04
https://leetcode.com/problems/palindrome-number/
原題如上。
題意解析:
判斷一個整數是否是迴文整數。像123321,,121,這樣的,就是迴文整數,負數都不是迴文整數。
關鍵點在於,常數空間,即,不能用陣列。
解題思路:
先求得整數最高位的數量級,例如123454321最高位的數量級是1000000000,用整數除以這個數量級,然後對10求餘,即可得到該位數字。
點到即止
public boolean isPalindrome(int x) { //防止溢位情況,先用long型變數儲存 long y=(long)x; //消去符號 if(y<0) return false; //先確定輸入數字的數量級 int left=1,right=1; while(y/left>=10){ left*=10; } //迴文判斷邏輯 while(left>right){ if(y/left%10 != y/right%10){ return false; } right*=10; left/=10; } return true; }