LeetCode中怎么判断回文数

LeetCode中怎么判断回文数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联专业为企业提供白朗网站建设、白朗做网站、白朗网站设计、白朗网站制作等企业网站建设、网页设计与制作、白朗企业网站模板建站服务,10多年白朗做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

  • 思路一:转为字符串判断原字符串与反转后字符串是否一致

回文数转换为字符串时,具有原字符串和反转后字符串相同的特点,而非回文数不具备此特点,因此可以通过这个方式判断是否为回文数。这种思路比较好理解,并且可以发现负数都不为回文数(如:-11从右读是11-),因此可以先将负数返回false,免去后面更多计算。

class Solution:    def isPalindrome(self, x: int) :        if(x<0) :            return False        return str(x)==''.join(reversed(str(x)))
#输入:15#输出:false
#输入:1331#输出:true
  • 思路二:取模反转拼接

仔细观察回文数,发现将回文数后半部分进行反转,结果跟前半部分一样(如12321,前一半是12,后一半反转后也是12,中间的3不影响整个判断),因此可以利用这个特征通过模运算和向下取整运算,将数字后半部分反转,然后与前半部分比对,得到最终结果。

class Solution:    def isPalindrome(self, x: int) :        if(x<0 or (x%10==0 and x !=0 )) :        # 类似30这种0结尾的数字都不是回文数,        # 因此首先通过与10的模运算进行排除            return False        a = len(str(x))        old = x        new = 0        for i in range(0,ceil(a/2)):            new = new*10+old%10 # %为模运算            old = old//10 # //为向下取整        return new == old or old==new//10 
#输入:15#输出:false
#输入:1331#输出:true

看完上述内容,你们掌握LeetCode中怎么判断回文数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!

分享题目:LeetCode中怎么判断回文数
网页路径:https://www.cdcxhl.com/article28/pjojjp.html

成都网站建设公司_创新互联,为您提供网站设计公司关键词优化全网营销推广网站营销网站策划网站设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站建设网站维护公司