leetcode回文数字

Palindrome Number:
当一个数字倒序和正序相同时,返回true,否则false
最简单的办法就是将数字转换成为string类型,然后对两个string进行比较,即位比较字符串是否相等
class Solution(object):
def isPalindrome(self, x):
“”"
:type x: int
:rtype: bool
“”"
a = str(x)[::1]

    b = str(x)[::-1]
    if a == b:

        c = True
    else:
        c = False
    return c
当题目中要求不能使用转换字符串这种办法时,来看看这些数字的特征吧。
例如:12,一定返回False
	   1221,一定返回True
		12321,一定是true
X<0,x是10的倍数一定返回false(x不等于0的情况下)
设想一下,如果数字是偶数位的话,只需要计算出一半数字就能进行比较,就例如1221的12和它的后两位21进行逆序得到的12比较。
如果数字是奇数位的话,只需计算一半数字就能得到了

那么,就是怎样拿到那一半数字,例如1221,拿到最后一位1,1221%10=1,就拿到了,倒数第二位是1*10+(1221/10)%10=2,这样就拿到了。偶数位时,只需要判断12=12就可以,但是奇数位就需要判断12=123/10.
代码如下:
class Solution(object):
def isPalindrome(self, x):
“”"
:type x: int
:rtype: bool
“”"

    if (x < 0 or (x % 10 == 0 and x != 0 )):
    
        return False
    
    revertedNumber = 0
    
    while x > revertedNumber:
        
        revertedNumber = revertedNumber * 10 + x % 10;
        
        x /= 10;
    
    return x == revertedNumber or x == revertedNumber/10

在这里,我想说一下python2he3关于除法的区别:
在python2中,只有一个斜线时,5/2=2,而在python3中,5/2=2.5
当为双斜线时,python2和3就没有区别了,都是5//2=2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值