数学知识。回文数取长度的一半,将后半反转,考虑反转后会否溢出;考虑负数反转return false.
func isPalindrome(x int) bool {
if x<0||x%10==0&&x!=0{
return false
}
revertedNumber := 0
for x > revertedNumber {
revertedNumber = revertedNumber * 10 + x % 10
x /= 10
}
//当x<=revertedNumber, 则反转已达数字长度一半
return x == revertedNumber || x == revertedNumber/10
}
有疑问加站长微信联系(非本文作者)