LeetCode:判斷回文數
根據數的位數取出首尾進行比較,判斷是否回文
No.9 回文數
題目:
判斷一個整數是否是回文數,回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 , 從右向左讀, 為 121- ,因此它不是一個回文數
示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 ,因此它不是一個回文數
解法:
-
數學方法
取數的首尾進行比較
public boolean isPalindrome(int x) { //邊界判斷 if (x < 0) return false; if (x < 10) return true; if (x % 10 == 0) return false; int div = 1; while (x / div >= 10) div *= 10; while (x > 0) { int left = x / div; int right = x % 10; if (left != right) return false; x = (x % div) / 10;//前后各去掉一位 div /= 100; } return true; } -
雙堆疊比較
堆疊的 equals 方法判斷兩個堆疊中元素是否相同
class Solution { public boolean isPalindrome(int x) { String s = String.valueOf(x); int len = s.length(); Stack s1 = new Stack(); Stack s2 = new Stack(); for (int i = 0; i < len; i++) { s1.push(s.charAt(i)); } for (int i = len - 1; i >= 0; i--) { s2.push(s.charAt(i)); } return s1.equals(s2); } } -
字串工具類反轉
class Solution { public boolean isPalindrome(int x) { String reversedStr = (new StringBuilder(x + "")).reverse().toString(); return (x + "").equals(reversedStr); } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/75832.html
標籤:其他
上一篇:樹的存盤
下一篇:網易互聯網內容安全技術實戰
