Leetcode 问题 9. 回文数(Python3)。为什么我的代码失败?

问题描述 投票:0回答:2

这是代码:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if str(x) == reversed(str(x)):
            return True
        else: 
            return False       

x = 121
失败的测试用例 - 它返回 False 作为输出。但在我看来,121一定等于121倒过来。 怎么了?

python python-3.x palindrome
2个回答
2
投票

正如评论中提到的,一个可行的解决方案是:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        return str(x) == str(x)[::-1]

1
投票

这个真正的问题是

reversed()
返回一个迭代器。

print(reversed(str(5)))
<reversed at 0x22c166a78e0>

因此,您正在将字符串与迭代器进行比较,这就是您得到 False 的原因。

str(5)==reversed(str(5))
#False

这是正确的语法:

str(5)==''.join(reversed(str(5)))
#True

文档链接:reversed()

© www.soinside.com 2019 - 2024. All rights reserved.