以下代码用于Leetcode的编码练习 - 我正在检查数字是否是回文(不将其转换为字符串)。我无法理解为什么这个代码对11,22,33等数字失败了。
def isPalindrome(self, x):
#x is an integer
digit = 0
reverse = 0
#Single digit numbers will be palindromes
if x >= 0 and x < 10:
return True
#fetch individual digits and build the reverse number
while x > 0:
digit = x % 10
reverse = (reverse * 10) + digit
x = x / 10
if x == reverse:
return True
else:
return False
答案 0 :(得分:0)
将它转换为字符串并以这种方式检查会容易得多。我已使用[::-1]
来反转字符串,然后将其与原始字符串进行比较。
def isPalindrome(x):
if str(x) == str(x)[::-1]:
return True
else:
return False
for x in range(100):
print(x, isPalindrome(x))
如果您还想测试它实际上是一个数字,请使用x.isdigit()
,这将为整数返回True
。