leetcode之回文数Golang
不将数字转化为字符串判断一个数是不是回文数:
1、如果该数是负数,那么肯定不是回文数,因为前面有个负号,而后面没有
2、判断一个非负数是否为回文数:
从该数的个位一直取到最高位,用来组成一个新的数,判断这个数是否和原来的数相等,如果相等,那么就是回文数,如果不想等,那么不是回文数
设原数位x,新数为y,y的初始值为0,循环以下过程:
y=y*10+x%10
x=x/10
直到x为0.
这个过程就将原来数x的每个位置上面的数字反转过来了,然后判断原来的数与新的数是否相等即可
代码如下:
func isPalindrome(x int) bool {
if x < 0 {
return false
}
tmpNum, revNum := x, 0
for tmpNum != 0 {
revNum = revNum*10 + (tmpNum % 10)
tmpNum /= 10
}
if x == revNum {
return true
}
return false
}
浙公网安备 33010602011771号