欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python学习日记——回文数(整数转为字符串)

程序员文章站 2022-04-03 10:57:37
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

相关标签: python leetcode