leetcode9.迴文數
阿新 • • 發佈:2020-07-23
public class LeetCode9 {
//迴文數判斷方法
public boolean huiwen(int num){
//存放回文數
int rec=num,newRec=0;
//負數和個位為零的數不可能是迴文數
//修改,0是迴文數,所以需判斷num是不是等於0
if(num<0||num%10==0&&num!=0){
return false;
}
/**
* 方法類似於資料反轉(參考leetcode7)
* while迴圈rec>newRec原因是隻需要轉換一半即可判斷是否屬於迴文數
* 當資料為雙位時可直接判斷,為單位時中位數不變不影響結果,可去掉中位數進行判斷
*/
while (rec>newRec){
newRec=newRec*10+rec%10;
rec/=10;
}
return rec==newRec||rec==newRec/10;
}
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
LeetCode9 leedCode9=new LeetCode9();
System.out.println("請輸入你要進行判斷的資料是不是迴文數:");
int num=sc.nextInt();
System.out.println(leedCode9.huiwen(num));
}
}
/**leetcode提交程式碼
*class Solution {
* public boolean isPalindrome(int x) {
* //存放回文數
* int rec=x,newRec=0;
* //負數和個位為零的數不可能是迴文數
* if(x<0||x%10==0&&x!=0){
* return false;
* }
*
* //方法類似於資料反轉(參考leetcode7)
* //while迴圈rec>newRec原因是隻需要轉換一半即可判斷是否屬於迴文數
* //當資料為雙位時可直接判斷,為單位時中位數不變不影響結果,可去掉中位數進行判斷
while (rec>newRec){
newRec=newRec*10+rec%10;
rec/=10;
}
return rec==newRec||rec==newRec/10;
}
}
*/