Python学习日记——回文数(整数转为字符串)
程序员文章站
2024-01-13 18:40:10
Python学习日记005——回文数(字符串方法)题目来源:LeetCode题库——回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。Example1:输入:121输出:trueExample2:输入:-121输出:falseExample3:输入:0输出:true链接:https://leetcode-cn.com/problems/palindrome-number前面的博文中,我们通过借助整数反转的方法判断一个数是否为回文数。本文提...
Python学习日记005——回文数(整数转为字符串)
题目来源:LeetCode题库——回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
Example1:
输入:121
输出:true
Example2:
输入:-121
输出:false
Example3:
输入:0
输出:true
链接:https://leetcode-cn.com/problems/palindrome-number
前面的博文中,我们通过借助整数反转的方法判断一个数是否为回文数。本文提出另一种方法:将整数转化为字符串。
回文数判断:将整数转化为字符串
将整数转化为字符串后,我们可以让程序检测首字符与末尾字符是否相同,如果一样,那么继续检测第二个字符和倒数第二个字符是否相同,如果仍然相同,则继续向字符串内侧依次进行检测……在这个过程中,直到有字符不对应相等或检测完所有字符才会停止。(如果字符串的字符个数为奇数个,则不比较中间的字符)
为了实现这个想法,我们定义low变量和high变量来表示字符串的起始和结束位置的两个字符。初始状态下,low = 0,high = len(s) - 1。如果在这两个位置的字符相同,那么low增加 1 而high减少 1 ,这个过程一直持续直到low >= high 或出现对应字符不匹配。
具体代码:
class Solution:
def isPalindrome(self, x: int) -> bool:
"""判断回文数:将整数转化为字符串来分析问题"""
s = str(x) #整数x转为字符串s
low = 0 #设置两个变量分别表示字符串首尾字符的位置
high = len(s) - 1
while low < high:
if s[low] != s[high]:
return False
low += 1
high -= 1
return True
学习过程中,欢迎指正。
本文地址:https://blog.csdn.net/weixin_43872060/article/details/107672180