[LeetCode]#9 迴文數
阿新 • • 發佈:2021-07-16
[LeetCode]#9 迴文數
給你一個整數 x ,如果 x 是一個迴文整數,返回 true ;否則,返回 false 。
迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。例如,121 是迴文,而 123 不是。
輸入:x = 121
輸出:true
這不就是之前做過的整數反轉嗎 (詳情見連結:https://www.cnblogs.com/jpppp/p/15016573.html)
同樣有兩種解法,數學解法和字串解法。
解法一
class Solution { public boolean isPalindrome(int x) { int x_t = x; int res = 0;while(x != 0){ int tmp = res; res = (res*10) + (x%10); x/=10; if (res / 10 != tmp) return false; } if(x_t < 0) return false; if(res == x_t) return true; return false; } }
解法二
class Solution { public boolean isPalindrome(intx) { try{ String s = String.valueOf(x); String res = new StringBuffer(s).reverse().toString(); int res_i = 0; if(x >= 0){ res_i = Integer.parseInt(res)<Integer.MIN_VALUE||Integer.parseInt(res)>Integer.MAX_VALUE?0:(int)Integer.parseInt(res); }else { res_i = -Integer.parseInt(res.substring(0,res.length()-1))<Integer.MIN_VALUE||-Integer.parseInt(res.substring(0,res.length()-1))>Integer.MAX_VALUE?0:(int)-Integer.parseInt(res.substring(0,res.length()-1)); } if(x < 0) return false; if(res_i == x) return true; return false; }catch(Exception e){ return false; } } }
總結:完全一樣,總結個屁