美文网首页
Add_Two_Numbers python 求解

Add_Two_Numbers python 求解

作者: vckah | 来源:发表于2018-03-12 22:44 被阅读0次

leetcode 传送门
例子:

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.

大体意思就是从前向后做加法,逢十进一。
在评论区找到的一个代码:

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        carry = 0    # 进位符
        root = n = ListNode(0)
        while l1 or l2 or carry:
        # 只要 l1 l2 都不为空才进行操作,否则直接返回 0
            v1 = v2 = 0
            if l1:
                v1 = l1.val
                l1 = l1.next
            if l2:
                v2 = l2.val
                l2 = l2.next
            carry, val = divmod(v1+v2+carry, 10)
            n.next = ListNode(val)
            n = n.next
        return root.next    # 这步一定要仔细理解

divmod() 函数返回的是商和余数构成的元组。
例如 a, b = divmod(6, 3) 就是 6除以3, a = 2, b = 0

这道题涉及到链表的知识,我想用 C 解答起来会稍微容易理解一点。对于 python,主要的是理解链表的构造。

 class ListNode(object):
     def __init__(self, x):
         self.val = x
         self.next = None

使用这个类来构造一个链表

idx = ListNode(3)
n = idx
n.next = ListNode(4)
n = n.next
n.next = ListNode(5)
n = n.next
print(idx.val,idx.next.val,idx.next.next.val)
测试.png

其实感觉 python 做这种数据结构对于理解链表来说还是有帮助的,但是相较于 C 代码, python 的代码还是难以理解的。

相关文章

  • Add_Two_Numbers python 求解

    leetcode 传送门例子: 大体意思就是从前向后做加法,逢十进一。在评论区找到的一个代码: divmod() ...

  • 计算1到100的和

    利用递归求解 用 最笨的方法求解: 用python牛逼的sum求解: 用奇偶相加求解:

  • 1两数之和2020-07-18

    Python 方法一:用 Python 中 list 的相关函数求解num2 = target - num1,是否...

  • TwoSum python求解

    leetcode 算法题,传送门例子: 乍一看,没有经验的一定会用到两重循环,比如这样: 但是如果有经验的人就会思...

  • python方程求解

    [Pythonによる科学・技術計算] 方程式の解を求める 解析解 sympy如果没有sympy,先安装:pip i...

  • Python3的super详解:MRO、C3算法

    1.C3算法求解MRO 求解MRO,在Python2.3之前是基于深度优先算法,但为了解决原来基于深度优先搜索算法...

  • awesome 禁忌搜索

    禁忌搜索(Tabu Search)算法及python实现 实验10 禁忌搜索算法求解tsp问题

  • 使用Python+SymPy 求解线性方程组

    最近几天在复习线性代数,想用Python求解线性方程组,最开始想用SciPy,但是SciPy求解方程组好像要求系数...

  • 系统工程中利用python求解可达矩阵

    在系统工程书中,建立解释结构模型中求解可达矩阵是必不可少的一环 故利用python写了一段求解可达矩阵的代码,只需...

  • python 二次规划

    如何在Python中利用CVXOPT求解二次规划问题http://blog.csdn.net/ch12094982...

网友评论

      本文标题:Add_Two_Numbers python 求解

      本文链接:https://www.haomeiwen.com/subject/sonofftx.html