LeetCode Golang 9.回文数
Posted GETTOLIVE
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Golang 9.回文数相关的知识,希望对你有一定的参考价值。
第一种办法 :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 }
以上是关于LeetCode Golang 9.回文数的主要内容,如果未能解决你的问题,请参考以下文章