给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

模拟

感觉对Python来说这种加法没有意义,本身就能处理高精度问题,但还是写一写吧,引用一下之前写的C++高精度加法的内容:

输入两个数到两个变量中,然后用赋值语句求它们的和,输出。但是,我们知道,在C++语言中任何数据类型都有一定的表示范围。当两个被加数很大时,上述算法显然不能求出精确解,因此我们需要寻求另外一种方法。在读小学时,我们做加法都采用竖式方法,这样我们方便写出两个整数相加的算法。
an……a3 a2 a1
bn……b3 b2 b1
+————————
cn……c3 c2 c1

Code

class Solution:def addStrings(self, num1: str, num2: str) -> str:ans, len1, len2, carry = '', len(num1) - 1, len(num2) - 1, 0while len1 >= 0 and len2 >= 0:ans += str(((int(num1[len1]) + int(num2[len2]) + carry) % 10))carry = (int(num1[len1]) + int(num2[len2]) + carry) // 10len1 -= 1len2 -= 1while len1 >= 0:ans += str((int(num1[len1]) + carry) % 10)carry = (int(num1[len1]) + carry) // 10len1 -= 1while len2 >= 0:ans += str((int(num2[len2]) + carry) % 10)carry = (int(num2[len2]) + carry) // 10len2 -= 1if carry:ans += str(carry)return ans[::-1]

复杂度分析

时间复杂度:O(max(len1,len2)),其中 len1=num1.length,len2=num2.length。竖式加法的次数取决于较大数的位数。
空间复杂度:O(1)。除答案外我们只需要常数空间存放若干变量。

415. Add Strings 字符串相加相关推荐

  1. [Leetcode][第415题][JAVA][字符串相加][双指针]

    [问题描述][简单] [解答思路] 1. 双指针 从两个字符串最后开始处理 对齐字符串 添加当前位 int c = a+b+cnt; cnt为进位 超过长度的补"0" 要注意最后有 ...

  2. 415. Add Strings

  3. Leetcode:415. Add Strings

    结合着这篇http://www.cnblogs.com/Michael2397/p/8027782.html自己完全实现了,顿时感觉到刷题有套路啊 public class TwoSumbin {pu ...

  4. LeetCode 415. 字符串相加 (逢十进一模版字符处理)

    415. 字符串相加 题意: 用两个字符串表示两个数 求出其相加的结果 不能使用任何内建 BigInteger 库 不能直接将输入的字符串转换为整数形式 思路: 翻转字符串,将其转为字符数组,即从下标 ...

  5. Golang 【大字符串相加,求和】

    题目 Golang  [大字符串相加,求和] 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回. 你不能使用任何內建的用于处理大整数的库(比如 BigInteg ...

  6. java字符串相加_String字符串相加的原理

    **因为String是非常常用的类, jvm对其进行了优化, jdk7之前jvm维护了很多的字符串常量在方法去的常量池中, jdk后常量池迁移到了堆中 ** 方法区是一个运行时JVM管理的内存区域,是 ...

  7. 【JS】JS中数值型字符串相加变成拼接字符串的解决方法

    [JS]JS中数值型字符串相加变成拼接字符串的解决方法 参考文章: (1)[JS]JS中数值型字符串相加变成拼接字符串的解决方法 (2)https://www.cnblogs.com/xsjs/p/1 ...

  8. c语言两字符串转数字后相加,一个觉得很难的C语言问题。对两个数字字符串相加。 C语言 如何把一个字符串中相连的两个数字转化为一......

    导航:网站首页 > 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个字符串中相连的两个数字转化为一... 一个觉得很难的C语言问题.对两个数字字符串相加. C语言 如何把一个 ...

  9. [Leetcode]第[43]题[JAVA][字符串相乘][字符串相加]

    [问题描述][中等] [解答思路] 1. 普通竖式 **复杂度:O(N^2) ** class Solution {/*** 计算形式* num1* x num2* ------* result*/p ...

最新文章

  1. C++调用父类的构造函数规则
  2. 视觉检索:视频多帧排序
  3. JS判断 浏览器 是否禁用Cookie
  4. 慕了!网传腾讯《英雄联盟》项目组年终奖每人120万!
  5. 9203精英挑战赛注意事宜 一
  6. Oracle BBED 工具介绍
  7. 【2019.08.21】2019杭电多校第十场
  8. DotNetTextBox V3.0 所见即所得编辑器控件Ver3.2.5 Free(免费版)
  9. springboot 整合 storm 无法使用注解获取 Ioc 里的 bean,获取不到 spring 上下文 applicationContext
  10. 使用 Fiddler Hook 报错:502 Fiddler - Connection Failed
  11. 通过修改dat文档对植物大战僵尸关卡数进行修改
  12. 信息隐藏——第四章 图像信息隐藏数
  13. 原根(知识学习+板子总结+例题+应用)
  14. vue3使用element组件中的Image导致频闪
  15. 什么是RAW文件系统?
  16. ES6:12-Map集合
  17. Linux是什么,能干什么,在哪干?
  18. 杉岩PACS影像系统分布式存储架构
  19. 计算机软件产品备案,计算机信息系统安全专用产品销售许可备案办事指南
  20. 2022TWS蓝牙耳机推荐,盘点600元真无线蓝牙耳机

热门文章

  1. intellij idea 显示打开文件路径按钮
  2. 【Java 笔记】 java 格式化输出
  3. docker版wordpress
  4. RESTORE DATABASE的standby选项
  5. shell取出多列文件中某一列重复的数据
  6. 进军中国软件,踏上寻找自我价值之路的菜鸟
  7. 实验8.2 指针与字符串 6-2 删除字符
  8. Express中post请求req.body为空
  9. 橙子云手机华为保修吗_华为云手机引关注!将替代传统手机?华为回应来了
  10. 【数据结构】之算法效率的度量