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
代码理解
- 把x取 绝对值
- 设置num 变量,他是0
- 目标就是a会逐步变成0,而num是逐步变成反转数字
- 使用一个临时变量temp,取得当前数字的第一位
- 把第一位的数字放到num上,并且把这个数字乘10,左移动一位。
- 通过对a的整数,拿掉第一位的数字
- 后续就是十位相同的操作。
- 一直到a变成0,while 停止
- 负数都不能满足这个条件