【Leetcode刷题】算法:回文数

一、题目介绍

在这里插入图片描述

二、代码实战

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x < 0:
            return False
        x_str = str(x)
        left = 0
        right = len(x_str) - 1
        while left < right:
            if x_str[left] != x_str[right]:
                return False
            left += 1
            right -= 1
        return True 
  1. class Solution::定义了一个名为 Solution 的类。
  2. def isPalindrome(self, x: int) -> bool::定义了一个名为 isPalindrome 的方法,该方法接受一个整数 x 作为参数,并返回一个布尔值表示是否为回文数。
  3. if x < 0::如果 x 是负数,则直接返回 False,因为负数不可能是回文数。
  4. x_str = str(x):将整数 x 转换为字符串,便于后续的比较。
  5. left = 0 和 right = len(x_str) - 1:初始化左右两个指针,left 指向字符串的开头,right 指向字符串的末尾。
  6. while left < right::进入循环,循环条件是左指针小于右指针,即还没有比较完整个字符串。
  7. if x_str[left] != x_str[right]::如果左指针所指的字符与右指针所指的字符不相等,则说明不是回文数,直接返回 False。
  8. left += 1 和 right -= 1:分别将左指针向右移动一位,右指针向左移动一位,继续比较下一个字符。
  9. 循环结束后,说明整个字符串比较完毕,没有发现不相等的字符,返回 True,表示是回文数。

这段代码通过将整数转换为字符串,然后使用双指针法从字符串的两端向中间进行比较,判断是否为回文数。如果在比较过程中发现不相等的字符,则直接返回 False,否则最终返回 True,表示是回文数。

结果展示如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wzk4869/article/details/130733339