LeetCode 415. 字符串相加(大数加法)
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. 字符串相加(大数加法)相关推荐
- LeetCode 415. 字符串相加 (逢十进一模版字符处理)
415. 字符串相加 题意: 用两个字符串表示两个数 求出其相加的结果 不能使用任何内建 BigInteger 库 不能直接将输入的字符串转换为整数形式 思路: 翻转字符串,将其转为字符数组,即从下标 ...
- Leetcode 415. 字符串相加
难度:简单 频率:119 题目: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回. 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也 ...
- leetcode 415. 字符串相加(Java版)
题目 https://leetcode-cn.com/problems/add-strings/ 题解 代码 /*** 给定两个字符串形式的非负整数 num1 和 num2 ,计算它们的和.*/ pu ...
- LeetCode 415.字符串相加
题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num ...
- Leetcode 415. 字符串相加 (每日一题 20210826 同类型题)
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和.提示:num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前 ...
- 2022-3-31 Leetcode 415.字符串相加
最终版,难度不大,魔鬼细节 class Solution {public:string addStrings(string num1, string num2) {reverse(num1.begin ...
- 【LeetCode笔记】415. 字符串相加(Java、字符串)
题目描述 不能直接把字符串转换成整数(会溢出) 面试被问过,今天刷面经又刷到..那就索性水一篇文吧! 更新:原题就是 leetcode 415 思路 & 代码 只要理好字符串s.字符串t.答案 ...
- leetcode刷题——415. 字符串相加
题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 提示: num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 ...
- 字符串相加/大数相加(代码极短)
题目描述: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 思路: 我们定义两个指针 i 和 j 分别指向 num 1 和num 2 的末尾,即最低位,同时定义一个变量add 维 ...
最新文章
- 为什么要进行图学习?谈一谈逆势而上的图神经网络
- Java中的I/O模型总结(八股文自述)
- Python基础 模块
- python 怎么读-Python怎么读
- 算法-动态规划(01背包)
- 小师妹学JVM之:java的字节码byte code简介
- picACG本地缓存目录_手机上本地存储的哪些文件、文件夹不能删?
- linux使jdk开机可用_JDK 11的一般可用性
- ADSL路由器的设置
- 机器学习的练功方式(十)——岭回归
- ajax 批量上传图片插件,TinyMCE多图片批量上传(Ajax)教程
- jitpack让使用第三方依赖库更简单
- shell脚本报错问题: -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory
- KETTLE、spoon使用
- java asm 教程_java字节码框架ASM的深入学习
- 相机视场角和焦距_摄像机焦距和视场角计算.doc
- JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx
- tcl/tk参考——列表操作lappend
- Android 移植iperf3.13 测试网络
- Eclipse显示空白符号的具体设置