百度网站收录查询,广东贸易网站建设哪家,镜像网站做优化,一个网站的构建1. 题目
给定两个字符串形式的非负整数 num1 和num2 #xff0c;计算它们的和。
注意#xff1a;num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库#xff0c; 也不能直接将输入的字符串…1. 题目
给定两个字符串形式的非负整数 num1 和num2 计算它们的和。
注意num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库 也不能直接将输入的字符串转换为整数形式。来源力扣LeetCode 链接https://leetcode-cn.com/problems/add-strings 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
位数不够的前置补0string.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 i0 ? 0 : (num1[i]-0);//位数不够了前面补0bit2 j0 ? 0 : (num2[j]-0);//位数不够了前面补0curBit (bit1bit2one)%10;one (bit1bit2one)/10;ans.insert(ans.begin(),curBit0);}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 i0 ? 0 : (num1[i]-0);bit2 j0 ? 0 : (num2[j]-0);curBit (bit1bit2one)%10;one (bit1bit2one)/10;ans.push_back(curBit0);}if(one)ans.push_back(1);reverse(ans.begin(),ans.end());return ans;}
};