这道题跟Reverse Integer差不多,也是考查对整数的操作,相对来说可能还更加简单,因为数字不会变化,所以没有越界的问题。基本思路是每次去第一位和最后一位,如果不相同则返回false,否则继续直到位数为0。代码如下:
public boolean isPalindrome(int x) { if(x<0) return false; int div = 1; while(div<=x/10) div *= 10; while(x>0) { if(x/div!=x%10) return false; x = (x%div)/10; div /= 100; } return true; }这个题和Longest Palindromic Substring也很接近,只是处理的数据结构有所不同。如果大家这个题有更好的解法,欢迎讨论哈。可以留言或者发邮件到linhuanmars@gmail.com给我,多谢~
此评论已被作者删除。
回复删除