码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode415 字符串相加

时间:2020-07-15 01:10:57      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:color   return   数字   integer   长度   整数   ring   etc   ret   

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

注意:

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

 

简单的一个双指针题目,需要注意的是一开始申请char数组的时候要多申请2位,1位用于可能的进位,1位用于写\0,。

 1 class Solution {
 2 public:
 3     string addStrings(string num1, string num2) {
 4         int len1 = num1.size();
 5         int len2 = num2.size();
 6         if (!len1)
 7             return num2;
 8         if (!len2)
 9             return num1;
10         int maxlen = len1 > len2 ? len1 + 1 : len2 + 1;
11         char* ret = new char[maxlen+1];
12         ret[maxlen] = \0;
13         int aim = maxlen - 1;
14         int i = len1 - 1, j = len2 - 1;
15         int carry = 0;
16         while (i >= 0 || j >= 0) {
17             int n1 = i >= 0 ? num1[i] - 0 : 0;
18             int n2 = j >= 0 ? num2[j] - 0 : 0;
19             int sum = n1 + n2 + carry;
20             carry = sum > 9 ? sum / 10 : 0;
21             sum = sum % 10;
22             ret[aim] = sum + 0;
23             aim--;
24             i--; j--;
25         }
26         if (carry) {
27             ret[aim] = carry+0;
28         }
29         else
30             ++ret;
31         string ans(ret);
32         return ans;
33     }
34 };

 

LeetCode415 字符串相加

标签:color   return   数字   integer   长度   整数   ring   etc   ret   

原文地址:https://www.cnblogs.com/rookiez/p/13303120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!