classSolution { publicbooleanisPalindrome(int x) { if (x < 0){ returnfalse; } if (x == 0){ returntrue; } if (x % 10 == 0){ returnfalse; } char[] chars = String.valueOf(x).toCharArray(); for (inti=0; i < chars.length / 2 ; i++) { if (chars[i] != chars[chars.length - i -1]){ returnfalse; } } returntrue;
整数解法
当然不能够仅仅满足于做这个题,要寻求更佳的解法
思路
首先不作转换,就是用数字
负数直接不可能为回文数
0直接返回true
如果是正数,则将他的倒序数值算出(取余)然后和原数比较是否相等
不转化字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
classSolution { publicbooleanisPalindrome(int x) { if (x == 0){ returntrue; } if (x < 0 || x % 10 == 0){ returnfalse; } intnum= x; intresult=0 ; while (num!=0){ result = result * 10 + num % 10; num = num / 10; } return result == x; } }