Jan 122021
 

估计没几个人能认识这样的单词。意思倒是不复杂,

https://leetcode.com/problems/palindrome-number/

就是把一个数字,反转过来,数值和原来相对的数字。例如,121,你反转后,还是121

题目专门提到不能使用字符串的方式来解答这个问题,那么就只能老实点。

class Solution:
    def isPalindrome(self, x: int) -> bool:
        num=0
        a=abs(x)

        while a!=0 :
            temp=a%10
            num=num*10+temp
            a=int(a/10)

        if x >= 0 and x == num:
            return True
        else:
            return False

代码理解

  1. 把x取 绝对值
  2. 设置num 变量,他是0
  3. 目标就是a会逐步变成0,而num是逐步变成反转数字
  4. 使用一个临时变量temp,取得当前数字的第一位
  5. 把第一位的数字放到num上,并且把这个数字乘10,左移动一位。
  6. 通过对a的整数,拿掉第一位的数字
  7. 后续就是十位相同的操作。
  8. 一直到a变成0,while 停止
  9. 负数都不能满足这个条件

 Leave a Reply

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.