【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,表示是回文数。

结果展示如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值