python 9.回文数(leetcode)问题,结果正确

gkl3eglg  于 2023-05-05  发布在  Python
关注(0)|答案(2)|浏览(172)

我是编程新手。因此,最近我遇到了Palendrome数中的测试输入问题。这是我的代码

class Solution:
    def isPalindrome(self, x: int) -> bool:
        str_x = str(x)
        list_x = []
        for i in str_x:
            list_x.append(i)
        new_x = ((''.join(map(str, list_x[::-1]))))
        if str(x) == str(new_x):
            return('true')
        elif str(x) != (new_x) :
            return('false')

如果我在VCS中手动输入所有值,10个i中的10个将得到正确的结果。其实,我错过了什么细节?

6ljaweal

6ljaweal1#

这个问题已经有答案了。你需要在返回中使用布尔值,而不是字符串。
但是,我想添加一些代码,使事情更容易理解:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        str_x = str(x) # This is fine, but can be added in the list comprehension below
        
        list_x = [char for char in str_x] # Nice to use clear names
        new_x = ''.join(map(str, list_x[::-1]))

        return str_x == new_x # Cleaner way return true / false
4ioopgfo

4ioopgfo2#

不需要字符串转换的回文数检查请参考下面的函数。

def palindrome(a:int):
      l=[]
      while True:
          l.append(a%10)
          a=a//10
          if a<1 : break 
      return (l==l[::-1])

相关问题