给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
func isPalindrome(x int) bool {
if (x<0 || (x%10==0)&&(x!=0)) {
return false//小于0显然不是,10的倍数反过来直接少一位数所以也不是,但0是
}
y:=x//保存x的值供后续与反转后的数字比对
temp,t:=0,0//temp保存中间过程的值,t保存个位十位等位数上的数字
for x>0{
t=x%10//对x取余,余数即每个位数上的数字
x=x/10//每次都让x缩小10倍,这样可以让十位百位千位上的数字依次放到个位上方便取余
temp=temp*10+t//依次恢复反转后的数字
}
return temp==y
}
//例如121,t=121%10=1 temp=0*10+1=1 x=x/10=12
// t=12%10=2 temp=1*10+2=12 x=x/10=1
// t=1%10=1 temp=12*10+1=121 x=1/10=0循环结束
[点击并拖拽以移动]