LeetCode之Palindrome Number
阿新 • • 發佈:2018-11-27
寫在前面:程式設計能力太弱,所以開始每天打卡刷題。此處是記錄自己的刷題之路。加油!
這題是判斷迴文數字。如121是迴文數字而123不是。
我的解法:
class Solution { public boolean isPalindrome(int x) { if(x<0) return false; if(x==0) return true; ArrayList<Integer> num_list = new ArrayList<>(); int y = x; while(x!=0){ num_list.add(x%10); x=x/10; } int b = num_list.get(0); for(int i=1;i<num_list.size();i++){ b = b*10+num_list.get(i); } if(y == b) return true; else return false; } }
借鑑討論區一個比我好的解法:
class Solution {
public boolean isPalindrome(int x) {
if(x<0 || (x!=0 && x%10==0))
return false;
int reverse = 0,y = x;
for(;x>0;x=x/10)
reverse = reverse*10+x%10;
return y==reverse;
}
}
總結:
- runtime從129ms到94ms;
- 程式碼簡潔不少;