如何解决添加两个数字在 Jupyter 中有效,但在 LeetCode 中生成错误答案
我正在尝试 leetcode 中的“添加两个数字”(链表)问题。我编写的代码在 Jupyter notebook 中运行良好并返回正确答案:
def list_to_digits(lst):
lst.reverse()
strings = map(str,lst)
a_string = "". join(strings)
an_integer = int(a_string)
return an_integer
def Convert_IntegersToList(integers):
res = list(map(int,str(integers)))
res.reverse()
return(res)
class ListNode:
def __init__(self,val=0,next=None):
self.val = val
self.next = next
class Solution:
def addTwoNumbers(self,l1: ListNode,l2: ListNode) -> ListNode:
integered_l1 = self.list_to_digits(l1)
integered_l2 = self.list_to_digits(l2)
sum_Integers = integered_l1 + integered_l2
list_ofSum = self.Convert_IntegersToList(sum_Integers)
return(list_ofSum)
例如,对于以下内容:
l1 = [2,4,3]
l2 = [5,6,4]
output_list = Solution().addTwoNumbers(l1,l2)
print(output_list)
此代码返回: [7,8] 这是正确的结果。但是,当我在 leetcode 中运行相同的代码时,它返回以下错误:
ListNode 对象没有属性 reverse
此错误发生在函数 list_to_digits 的 lst.reverse() 行中。 然后我尝试使用两个函数根据 here 在 nodeList 和 python list 之间进行转换。这一次,我有这样的事情:
class Solution:
def listnode_to_pylist(self,listnode):
ret = []
while True:
ret.append(listnode.val)
if listnode.next != None:
listnode = listnode.next
else:
return ret
def pylist_to_listnode(self,pylist,link_count):
if len(pylist) > 1:
ret = precompiled.listnode.ListNode(pylist.pop())
ret.next = self.pylist_to_listnode(pylist,link_count)
return ret
else:
return precompiled.listnode.ListNode(pylist.pop(),None)
def list_to_digits(self,lst):
lst.reverse()
strings = map(str,lst)
a_string = "". join(strings)
an_integer = int(a_string)
return an_integer
def Convert_IntegersToList(self,integers):
res = list(map(int,str(integers)))
res.reverse()
return(res)
def addTwoNumbers(self,l2: ListNode) -> ListNode:
l1_ = self.listnode_to_pylist(l1)
l2_ = self.listnode_to_pylist(l2)
integered_list1 = self.list_to_digits(l1_)
integered_list2 = self.list_to_digits(l2_)
sum_Integers = integered_list1 + integered_list2
list_ofSum = self.Convert_IntegersToList(sum_Integers)
return(self.pylist_to_listnode(list_ofSum,len(list_ofSum)))
此代码在 leetCode 中有效,但它以相反的顺序返回结果列表。例如,对于上面的示例,它返回:[8,7](我尝试删除列表反向行,但返回的列表仍然是相反的顺序)。有趣的是,当我在 Jupyter notebook 中运行修改后的代码时,它抛出了以下错误:
AttributeError: 'list' 对象没有属性 'val'
我无法弄清楚在每种情况下我做错了什么以及如何解决。知道如何更正这两个代码中的每一个以使其在 leetcode 中工作以及如何在 Jupyter notebook 中修复后一个代码的错误吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。