题目
给一个整数 x,如果 x 是回文数,返回 true。例如,
- 121 true
- -121 false
- 123 false
解析
首先,负数肯定不是回文数。如何判断是回文数呢,可以考虑最后按位相等, 其实更直接的,如果是回文数,反向之后,这两个数字是相等的。所以只需要将这个数字反向。
反向的时候注意溢出,如果溢出的话,说明肯定不是回文数。
代码
func isPalindrome(x int) bool {
rev := 0
rx := x
if x < 0 {
return false
}
for ; x!=0 ; {
rev = rev*10 + x%10
x = x/10
if rev > (1<<31-1) {
return false
}
}
return rx == rev
}
网友评论