【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
- class Solution::定义了一个名为 Solution 的类。
- def isPalindrome(self, x: int) -> bool::定义了一个名为 isPalindrome 的方法,该方法接受一个整数 x 作为参数,并返回一个布尔值表示是否为回文数。
- if x < 0::如果 x 是负数,则直接返回 False,因为负数不可能是回文数。
- x_str = str(x):将整数 x 转换为字符串,便于后续的比较。
- left = 0 和 right = len(x_str) - 1:初始化左右两个指针,left 指向字符串的开头,right 指向字符串的末尾。
- while left < right::进入循环,循环条件是左指针小于右指针,即还没有比较完整个字符串。
- if x_str[left] != x_str[right]::如果左指针所指的字符与右指针所指的字符不相等,则说明不是回文数,直接返回 False。
- left += 1 和 right -= 1:分别将左指针向右移动一位,右指针向左移动一位,继续比较下一个字符。
- 循环结束后,说明整个字符串比较完毕,没有发现不相等的字符,返回 True,表示是回文数。
这段代码通过将整数转换为字符串,然后使用双指针法从字符串的两端向中间进行比较,判断是否为回文数。如果在比较过程中发现不相等的字符,则直接返回 False,否则最终返回 True,表示是回文数。
结果展示如下:
还没有评论,来说两句吧...