9.回文数
题目
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
解题
解题步骤:
- 负数、以 0 结尾的非零整数 不是回文数
- 反转整数
- 判断反转结果是否与原数相等
go
func isPalindrome(x int) bool {
if x < 0 || (x != 0 && x%10 == 0) {
return false
}
// 反转整数
original := x
reversed := 0
for x != 0 {
// 回文数不可能溢出
if reversed > math.MaxInt32/10 || reversed < math.MinInt32/10 {
return false
}
reversed = reversed*10 + x%10
x /= 10
}
return original == reversed
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22