添加两个数字在 Jupyter 中有效,但在 LeetCode 中生成错误答案

如何解决添加两个数字在 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_digitslst.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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?