【leetcode】9. 回文数

文章目录

    • 题目
    • 题解
      • 1. 转为字符串切片
      • 2. 取模反转

题目

9. 回文数

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

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

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

示例 1:

输入:x = 121
输出:true

示例 2:

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

示例 3:

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

题解

1. 转为字符串切片

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        x_str = str(x)
        if x_str == x_str[::-1]:
            return True
        return False
        

2. 取模反转

数字的长度可能为奇数或者偶数

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        if x < 0 or x >0 and x % 10 == 0:
            return False

        rev = 0
        # 前半部分
        while rev < x // 10:
            rev = rev * 10 + x % 10
            x = x // 10
        
        return rev == x or rev == x // 10

        

你可能感兴趣的:(LeetCode,leetcode,算法,职场和发展)