9. 回文数
将整数转换为字符串再对比
执行耗时:12 ms,击败了34.65% 的Java用户 内存消耗:37.9 MB,击败了41.87% 的Java用户
class Solution {public boolean isPalindrome(int x) {// 如果小于0,直接返回 falseif (x < 0) return false;// 将整数转换为字符串String s = String.valueOf(x);// 将字符串转换为 char 数组char[] chars = s.toCharArray();// 遍历 char 数组对比for (int i = 0; i < chars.length / 2; i++) {if (chars[i] != chars[chars.length - 1 - i]) {return false;}}return true;}}
将整数转换为字符串,调用反转字符串 api
执行耗时:16 ms,击败了13.91% 的Java用户 内存消耗:38.3 MB,击败了13.46% 的Java用户
class Solution {public boolean isPalindrome(int x) {StringBuilder stringBuilder = new StringBuilder(String.valueOf(x));return stringBuilder.toString().equals(stringBuilder.reverse().toString());}}
数学解法
执行用时:5 ms, 在所有 Java 提交中击败了74.53%的用户 内存消耗:40.9 MB, 在所有 Java 提交中击败了24.24%的用户
class Solution {public boolean isPalindrome(int x) {if (x < 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;}}
