回文数
给你一个整数
x
,如果x
是一个回文整数,返回true
;否则,返回false
。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
思路一:想要验证一个整数是不是回文数,我们可以直接将其转换为字符串,再借助reverse
翻转该字符串,进行比较
1 | public class Palindrome { |
思路二:我们可以对整数x
不断进行取余操作x%10
,获取到余数remainder
,构造新的整数reverse
,同时整数不断“右移”,即x/10
;如果整数是回文数,那么每取一次余,reverse
便向x
靠近,直至reverse超过整数x
,结束循环
1 | public class Palindrome { |
这个时候,我们信心满满地将代码提交到leetcode会发现,纳尼???翻车了?
原来,当int x = 10,100,1000等10的整数倍时,会判定为true,所以这里需要对参数进行校验
1 | if (x < 0 || (x % 10 == 0 && x > 0)) { |
这样,就ok啦