You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将LeetCode 9.回文数自定义代码转换为LeetCode提交格式?

LeetCode 9. 回文数问题:代码格式转换与TypeError错误解决

问题背景

作为编程初学者,我写出了回文数的测试代码,但不知道如何将其转换为LeetCode要求的Solution类格式提交。修改代码时出现了TypeError: 'int' object has no attribute '__getitem__'错误,请求帮助。

自定义测试代码

input_string_for_test = "1155215511"
    
bucket_1 = []
bucket_2 = []
boolean_bucket = 0

bucket_1.append(input_string_for_test)
bucket_2.append(input_string_for_test[::-1])

'''
print(bucket_1)
print(bucket_2)
'''

if bucket_1 == bucket_2:
    boolean_bucket =+ 1
    '''
    print("PALINDROME")
    '''
    print(bool(boolean_bucket))
    
else:
    '''
    print("NO")
    '''
    print(bool(boolean_bucket))

LeetCode要求的提交格式

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """

报错信息

TypeError: 'int' object has no attribute '__getitem__'
    bucket_2.append(x[::-1])
Line 12 in isPalindrome (Solution.py)
    ret = Solution().isPalindrome(param_1)
Line 43 in _driver (Solution.py)
    _driver()
Line 53 in <module> (Solution.py)

错误原因

报错核心是:LeetCode传入的参数x是整数类型,而[::-1]是字符串/列表的切片反转操作,整数不支持该操作,因此触发类型错误。另外你原测试代码用列表存储字符串的做法完全多余,直接比较字符串本身即可简化逻辑。

修正后的可提交代码

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        # 负数直接返回False,负号无法对称
        if x < 0:
            return False
        # 将整数转为字符串,才能使用切片反转
        x_str = str(x)
        # 直接比较原字符串和反转后的字符串,返回布尔结果
        return x_str == x_str[::-1]

代码解释

  1. 特殊情况处理:负数不可能是回文数,负号在开头反转后会到结尾,直接返回False。
  2. 类型转换:把整数x转为字符串x_str,这样就能用[::-1]完成反转操作。
  3. 简化逻辑:直接比较原字符串和反转字符串的相等性,结果就是是否为回文数的布尔值,无需额外变量存储。

内容的提问来源于stack exchange,提问作者Light_528

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:55:01