9. 回文数

作者: Sun东辉 | 来源:发表于2022-04-30 08:15 被阅读0次

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

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

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

    示例 1:

    输入:x = 121
    输出:true
    

    示例 2:

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

    示例 3:

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

    提示:

    • -231 <= x <= 231 - 1
    • 你能不将整数转为字符串来解决这个问题吗?

    解题思路:动态规划

    • x < 0 一定不是回文
    • 0 ≤ x < 10 一定是回文
    • 将数字转换为数组,比较判断数组中的第一位和最后一位,依次递归
    func isPalindrome(x int) bool {
        if x < 0 {
            return false
        }
        if x < 10 {
            return true
        }
        list := []int{}
        for x >= 10 {
            list = append(list, x%10)
            x = x / 10
        }
        list = append(list, x)
        half := len(list) / 2
        for i := 0; i <= half; i++ {
            if list[i] != list[len(list)-1-i] {
                return false
            }
        }
        return true
    }
    

    相关文章

      网友评论

        本文标题:9. 回文数

        本文链接:https://www.haomeiwen.com/subject/bkqjyrtx.html