1. 程式人生 > 其它 >[LeetCode]#9 迴文數

[LeetCode]#9 迴文數

[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(int
x) { 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; } } }

總結:完全一樣,總結個屁