关于golang:Golang力扣Leetcode-9回文数数学

39次阅读

共计 543 个字符,预计需要花费 2 分钟才能阅读完成。

题目 :给你一个整数 x,如果 x 是一个回文整数,返回 true;否则,返回 false。

回文数是斧正序(从左向右)和倒序(从右向左)读都是一样的整数。

  • 例如,121 是回文,而 123 不是。

链接 :力扣 Leetcode – 9. 回文数.

示例 1:

输出:x = 121
输入:true

示例 2:

输出:x = -121
输入:false
解释:从左向右读, 为 -121。从右向左读, 为 121-。因而它不是一个回文数。

示例 3:

输出:x = 10
输入:false
解释:从右向左读, 为 01。因而它不是一个回文数。

思路 :这里用比较简单的方法,在数学上如果为回文数,颠倒后的数肯定和原来相等

  • 如果是正数则肯定不是回文数,间接返回 false
  • 如果是负数,则将其倒序数值计算出来,而后比拟和原数值是否相等
  • 如果是回文数则相等返回 true,如果不是则不相等 false

Go 代码:

package main

import ("fmt")

func isPalindrome(x int) bool {
    var sum int
    first := x
    if x < 0 {return false} else {
        for x != 0 {
            a := x % 10
            x = x / 10
            sum = sum*10 + a
        }
    }
    return sum == first
}
func main() {fmt.Println(isPalindrome(121))
}

提交截图

正文完
 0