LeetCode第9题回文数Python代码求助:本地正常但平台提交失败
LeetCode第9题「回文数」代码问题排查
问题说明
刚学习Python,在解决LeetCode第9题「回文数」时遇到问题:在Colab中设置变量x=121运行代码完全正常,但将代码复制到LeetCode提交时答案错误,仅判断结果为False的情况正确。
Colab运行代码
x = -101 x_string = str(x) original = [] new = [] print(len(x_string)) for i in range(0,len(x_string)): original.append(x_string[i]) for i in reversed(original): new.append(i) print(original == new)
LeetCode提交代码
class Solution(object): def isPalindrome(self, x): x_string = str(x) original = [] new = [] for i in range(0,len(x_string)): original.append(x_string[i]) for i in reversed(original): new.append(i) print(original == new)
问题原因与修复
LeetCode的题目要求函数返回布尔值(True/False),但当前代码仅用print(original == new)输出结果,没有通过return返回这个布尔值。LeetCode判题系统会读取函数的返回值,未显式返回时函数默认返回None,这就导致正确结果应为True时,系统接收不到正确的返回值,判定为错误;只有当print的结果是False时,看起来正确但本质逻辑错误。
修复后的代码只需将print替换为return:
class Solution(object): def isPalindrome(self, x): x_string = str(x) original = [] new = [] for i in range(len(x_string)): original.append(x_string[i]) for i in reversed(original): new.append(i) return original == new
代码优化(可选)
可以简化逻辑,直接利用Python字符串的切片特性反转字符串,代码更简洁高效:
class Solution(object): def isPalindrome(self, x): x_str = str(x) return x_str == x_str[::-1]
内容的提问来源于stack exchange,提问作者jk_kim
相关产品推荐
相关产品推荐

