美文网首页
LeetCode - Palindrome Number

LeetCode - Palindrome Number

作者: Jansid | 来源:发表于2017-11-26 13:44 被阅读10次

Determine whether an integer is a palindrome. Do this without extra space.

判断一个整数是否是一个回数。不能使用额外的空间。

Example:

12321、121、1、0   # 这样正反读一样的数字称为回数

分析: 回数正反读都一样,那么负数肯定是不符合要求的,其余的数字就需要判断前半部分和后半部分数字是否一致。要进行比较,这时就考虑将需要判断的数字转换成字符串来进行比较。

def isPalindrome(num):
    if num < 0: return False
    str_num = str(num)  # 转换成字符串
    # 首尾数字进行比较,比较的次数为总长度的一半
    for i in range(len(str_num) // 2 + 1):  
        if str_num[i] != str_num[-(i+1)]:
            return False  # 如果首尾数字出现一个不相同,则不是回数
    return True    

因为只需要判断数字反过来是否与原数一样,也可以利用字符串的切片来对上面的进行优化。

def isPalindrome(num):
    str_num = str(num)  # 将数字转化为字符串
    return str_num == str_num[::-1]  # 用原字符串与翻转后的字符串进行比较

相关文章

网友评论

      本文标题:LeetCode - Palindrome Number

      本文链接:https://www.haomeiwen.com/subject/wbykbxtx.html