[LeetCode] #9 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
输入:x = 121
输出:true
这不就是之前做过的[LeetCode] #7 整数反转吗
同样有两种解法,数学解法和字符串解法。
解法一
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) { String s = String.valueOf(x); for (int i = 0; i < s.length() / 2; i++) if (s.charAt(i) != s.charAt(s.length() - i - 1)) return false; return true; } }
或者
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; } } }
知识点:无
总结:无