编程笔记(7)

两数之和(LeetCode 2)

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

python3 代码:

class Solution:
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        p = l1 
        q = l2 
        count1 = 0
        count2 = 0 
        sum_p = 0 
        sum_q = 0 
        while(p!=None):
            x = p.val if p else 0 
            sum_p += x*pow(10,count1)
            if p!=None : p = p.next
            count1 += 1
                
        while(q!=None):
            y = q.val if q else 0
            sum_q += y*pow(10,count2)
            if q!=None : q = q.next
            count2 += 1
        sum_a = sum_p + sum_q
        
        sum_str = str(sum_a)[::-1]
        count = len(sum_str)
        re = ListNode(sum_str[0:1])
        r = re
        for i in range(1,count):
            r.next = ListNode(sum_str[i:i+1])
            r = r.next
            
        return re
 

编程笔记(7)

相关文章:

  • 2022-01-22
  • 2021-07-14
  • 2021-11-01
  • 2022-02-06
  • 2022-12-23
  • 2021-09-27
  • 2021-07-23
猜你喜欢
  • 2022-01-09
  • 2021-08-20
  • 2021-09-22
  • 2022-01-29
  • 2021-09-21
  • 2022-12-23
相关资源
相似解决方案