这是代码:
class Solution:
def isPalindrome(self, x: int) -> bool:
if str(x) == reversed(str(x)):
return True
else:
return False
x = 121
失败的测试用例 - 它返回 False 作为输出。但在我看来,121一定等于121倒过来。
怎么了?
正如评论中提到的,一个可行的解决方案是:
class Solution:
def isPalindrome(self, x: int) -> bool:
return str(x) == str(x)[::-1]
这个真正的问题是
reversed()
返回一个迭代器。
print(reversed(str(5)))
<reversed at 0x22c166a78e0>
因此,您正在将字符串与迭代器进行比较,这就是您得到 False 的原因。
str(5)==reversed(str(5))
#False
这是正确的语法:
str(5)==''.join(reversed(str(5)))
#True
文档链接:reversed()