标签:pack Golan 结果 rom 回文数 == pac targe ack
第一种办法 :itoa 转换为字符串进行处理:
package main
import (
"strconv"
"fmt"
)
//判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
//
//示例 1:
//
//输入: 121
//输出: true
//示例 2:
//
//输入: -121
//输出: false
//解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
//示例 3:
//
//输入: 10
//输出: false
//解释: 从右向左读, 为 01 。因此它不是一个回文数。
func main() {
fmt.Println(isPalindrome(0))
}
func isPalindrome(x int) bool {
if x < 0 {
return false
}
if x < 10 {
return true
}
arrX := strconv.Itoa(x)
for i := 0; i < len(arrX)/2; i++ {
if arrX[i] != arrX[len(arrX)-i-1] {
return false
}
}
return true
}
第二种办法:
纯数学, 将 输入的数字全部反过来 123->321, 再返回 == 比较结果
func isPalindrome(x int) bool {
if x < 0{
return false
}
pre := x
rev := 0
for x != 0{
rev = rev * 10 + x % 10
x /= 10
}
return rev == pre
}
标签:pack Golan 结果 rom 回文数 == pac targe ack
原文地址:https://www.cnblogs.com/gettolive/p/10216727.html