1. 题目

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-strings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 位数不够的前置补0
  • string.insert(str.begin(),char);
class Solution {public:string addStrings(string num1, string num2) {int n1 = num1.length(), n2 = num2.length();int i = n1-1, j = n2-1, one = 0, bit1, bit2, curBit;string ans;for( ; i >= 0 || j >= 0; --i,--j){bit1 =  i<0 ? 0 : (num1[i]-'0');//位数不够了,前面补0bit2 =  j<0 ? 0 : (num2[j]-'0');//位数不够了,前面补0curBit = (bit1+bit2+one)%10;one = (bit1+bit2+one)/10;ans.insert(ans.begin(),curBit+'0');}if(one)ans.insert(ans.begin(),'1');return ans;}
};

  • 加速,优化代码
  • string类在前面insert可能会移动后面的字符
  • 优化:直接push_back,最后reverse反转
class Solution {public:string addStrings(string num1, string num2) {int n1 = num1.length(), n2 = num2.length();int i = n1-1, j = n2-1, one = 0, bit1, bit2, curBit;string ans;for( ; i >= 0 || j >= 0; --i,--j){bit1 =  i<0 ? 0 : (num1[i]-'0');bit2 =  j<0 ? 0 : (num2[j]-'0');curBit = (bit1+bit2+one)%10;one = (bit1+bit2+one)/10;ans.push_back(curBit+'0');}if(one)ans.push_back('1');reverse(ans.begin(),ans.end());return ans;}
};

LeetCode 415. 字符串相加(大数加法)相关推荐

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

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

  2. Leetcode 415. 字符串相加

    难度:简单 频率:119 题目: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回. 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也 ...

  3. leetcode 415. 字符串相加(Java版)

    题目 https://leetcode-cn.com/problems/add-strings/ 题解 代码 /*** 给定两个字符串形式的非负整数 num1 和 num2 ,计算它们的和.*/ pu ...

  4. LeetCode 415.字符串相加

    题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num ...

  5. Leetcode 415. 字符串相加 (每日一题 20210826 同类型题)

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和.提示:num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前 ...

  6. 2022-3-31 Leetcode 415.字符串相加

    最终版,难度不大,魔鬼细节 class Solution {public:string addStrings(string num1, string num2) {reverse(num1.begin ...

  7. 【LeetCode笔记】415. 字符串相加(Java、字符串)

    题目描述 不能直接把字符串转换成整数(会溢出) 面试被问过,今天刷面经又刷到..那就索性水一篇文吧! 更新:原题就是 leetcode 415 思路 & 代码 只要理好字符串s.字符串t.答案 ...

  8. leetcode刷题——415. 字符串相加

    题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 提示: num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 ...

  9. 字符串相加/大数相加(代码极短)

    题目描述: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 思路: 我们定义两个指针 i 和 j 分别指向 num 1 和num 2 的末尾,即最低位,同时定义一个变量add 维 ...

最新文章

  1. 为什么要进行图学习?谈一谈逆势而上的图神经网络
  2. Java中的I/O模型总结(八股文自述)
  3. Python基础 模块
  4. python 怎么读-Python怎么读
  5. 算法-动态规划(01背包)
  6. 小师妹学JVM之:java的字节码byte code简介
  7. picACG本地缓存目录_手机上本地存储的哪些文件、文件夹不能删?
  8. linux使jdk开机可用_JDK 11的一般可用性
  9. ADSL路由器的设置
  10. 机器学习的练功方式(十)——岭回归
  11. ajax 批量上传图片插件,TinyMCE多图片批量上传(Ajax)教程
  12. jitpack让使用第三方依赖库更简单
  13. shell脚本报错问题: -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory
  14. KETTLE、spoon使用
  15. java asm 教程_java字节码框架ASM的深入学习
  16. 相机视场角和焦距_摄像机焦距和视场角计算.doc
  17. JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx
  18. tcl/tk参考——列表操作lappend
  19. Android 移植iperf3.13 测试网络
  20. Eclipse显示空白符号的具体设置

热门文章

  1. ewebeditor未授权:功能被禁用请先配置授权_SteamPY新功能——外区账号礼物自动领取...
  2. 字体文件解析 c语言,如何正确地从C语言的文件中读取某些字符串?
  3. day05-数据类型与操作
  4. 深入理解计算机系统 第十二章 并发编程
  5. 复制表、复制表结构、复制数据
  6. Alpha冲刺(7/10)
  7. 第1章 ssh命令和SSH服务详解
  8. 获取要素集中字段的唯一值
  9. 【学习笔记】【C语言】类型说明符
  10. DIV Scroll属性