iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3中如何实现两数相加
  • 174
分享到

python3中如何实现两数相加

2023-06-14 10:06:42 174人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍python3中如何实现两数相加,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位

这篇文章主要介绍python3中如何实现两数相加,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

python3中如何实现两数相加

示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

示例 2:

输入:l1 = [0], l2 = [0]
输出:[0]

示例 3:

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

思路:

创建一个新链表,新链表的头部先设置为l1头部和l2头部之和。
2.遍历两个链表,只要有一个还没有遍历完就继续遍历
3.每次遍历生成一个当前节点cur的下一个节点,其值为两链表对应节点的和再加上当前节点cur产生的进位
4.更新进位后的当前节点cur的值
5.循环结束后,因为首位可能产生进位,因此如果cur.val是两位数的话,新增一个节点
6.返回头节点

由题目注释可以看出listNode这个类是用来创建链表的,默认next=None,val=0.
Definition for singly-linked list.
class Listnode:
def init(self, val=0, next=None):
self.val = val
self.next = next

# Definition for singly-linked list.# class ListNode:#  def __init__(self, val=0, next=None):#   self.val = val#   self.next = nextclass Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:  head = ListNode(l1.val+l2.val)  current = head  while l1.next or l2.next:   l1 = l1.next if l1.next else ListNode()   l2 = l2.next if l2.next!=None else ListNode()   current.next = ListNode(l1.val+l2.val+current.val//10)   current.val = current.val%10   current = current.next  if current.val >= 10:   current.next = ListNode(current.val//10)   current.val = current.val%10  return head

改进改进:增加了空间复杂度。本以为一方为None后直接把另一个链表连上就ok了。然后,就打脸了。

python3中如何实现两数相加

然后又加了while

> [9999]# Definition for singly-linked list.# class ListNode:#  def __init__(self, val=0, next=None):#   self.val = val#   self.next = nextclass Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:  head = ListNode(l1.val+l2.val)  current = head  while l1.next and l2.next:   l1 = l1.next    l2 = l2.next    current.next = ListNode(l1.val+l2.val+current.val//10)   current.val = current.val%10   current = current.next  if l1.next == None and l2.next :   while l2.next:    l2 = l2.next    current.next= ListNode(l2.val+current.val//10)    current.val = current.val%10    current = current.next    current.next = l2.next  elif l2.next == None and l1.next:   while l1.next:    l1 = l1.next    current.next= ListNode(l1.val+current.val//10)    current.val = current.val%10    current = current.next    current.next = l2.next  if current.val >= 10:   current.next = ListNode(current.val//10)   current.val = current.val%10  return head

python3中如何实现两数相加

以上是“python3中如何实现两数相加”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网Python频道!

--结束END--

本文标题: python3中如何实现两数相加

本文链接: https://www.lsjlt.com/news/269694.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3中如何实现两数相加
    这篇文章主要介绍python3中如何实现两数相加,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 ...
    99+
    2023-06-14
  • python3两数相加的实现示例
    两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表...
    99+
    2024-04-02
  • python如何实现数组元素两两相加
    目录数组元素两两相加求数组中两两相加等于20的组合(Python实现)题目解析Python实现数组元素两两相加 count = 0 c2 = [] for i in range(le...
    99+
    2024-04-02
  • LeetCode如何实现两个数字相加
    小编给大家分享一下LeetCode如何实现两个数字相加,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,...
    99+
    2023-06-19
  • php如何实现两个数字相加
    这篇“php如何实现两个数字相加”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现两个数字相加”文章吧。php实现...
    99+
    2023-06-29
  • C++如何实现LeetCode两个数字相加
    这篇文章将为大家详细讲解有关C++如何实现LeetCode两个数字相加,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。[LeetCode] 2. Add Two Numbers 两个数字相加You are ...
    99+
    2023-06-20
  • javascript如何实现两变量相加
    这篇文章主要介绍“javascript如何实现两变量相加”,在日常操作中,相信很多人在javascript如何实现两变量相加问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ja...
    99+
    2024-04-02
  • C++如何实现算法两个数字相加
    这篇文章主要为大家展示了“C++如何实现算法两个数字相加”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++如何实现算法两个数字相加”这篇文章吧。Add Two Numbers 两个数字相加Yo...
    99+
    2023-06-20
  • Python怎么实现两数相加
    这篇文章主要讲解了“Python怎么实现两数相加”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现两数相加”吧!两数相加题目描述给出两个 非空 的链表用来表示两个非负的整数。...
    99+
    2023-06-02
  • C++如何实现两数相除
    本篇内容介绍了“C++如何实现两数相除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Divide Two Integers 两数相除Give...
    99+
    2023-06-19
  • php如何实现两个最大值相加
    这篇文章主要介绍“php如何实现两个最大值相加”,在日常操作中,相信很多人在php如何实现两个最大值相加问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何实现两个最大值相加”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-30
  • python怎么实现数组元素两两相加
    这篇“python怎么实现数组元素两两相加”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么实现数组元素两两相加...
    99+
    2023-06-30
  • QT如何实现将两个时间相加
    本篇内容介绍了“QT如何实现将两个时间相加”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!标志位首先介绍实现的这两个函数:void setTr...
    99+
    2023-07-02
  • 怎么在java中实现两个大数相加
    怎么在java中实现两个大数相加?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下:public class BigIntAdd {priva...
    99+
    2023-05-30
    java
  • php如何实现两个数相乘
    PHP是一种常用的服务器端脚本语言,可以用于开发各种 Web 应用程序。本文将介绍如何使用 PHP 实现两个数相乘的功能。在 PHP 中,可以使用 "*" 运算符来进行乘法计算。下面是一个简单的 PHP 程序,演示如何将...
    99+
    2023-05-14
    php
  • php如何实现两个数相除
    这篇文章主要介绍了php如何实现两个数相除的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何实现两个数相除文章都会有所收获,下面我们一起来看看吧。在PHP中,除法运算使用斜杠(/)进行表示,例如12/3就...
    99+
    2023-07-06
  • C++实现LeetCode(2.两个数字相加)
    [LeetCode] 2. Add Two Numbers 两个数字相加 You are given two non-empty linked lists rep...
    99+
    2024-04-02
  • php如何实现两数相除取整
    这篇文章主要为大家分析了php如何实现两数相除取整的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“php如何实现两数相除取整”的知识吧。php实现两数相除取整...
    99+
    2023-06-28
  • 两数相加的实现方法有哪些
    这篇文章主要介绍“两数相加的实现方法有哪些”,在日常操作中,相信很多人在两数相加的实现方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”两数相加的实现方法有哪些”的疑惑...
    99+
    2024-04-02
  • java中两个字符串的拼接、整数相加和浮点数相加实现代码
    编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加,并输出结果。要进行异常处理,对输入的不符合要求的字符串提示给用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作