leetcode-43 Multiply Strings

1
2
Input: num1 = "2", num2 = "3"
Output: "6"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
string multiply(string num1, string num2) {
string sum(num1.size()+num2.size(), '0');

for(int i = num1.size() - 1; 0 <= i; --i){
int carry = 0;
for(int j = num2.size()-1; 0 <= j; --j){
int tmp = (sum[i+j+1]-'0') + (num1[i]-'0')*(num2[j]-'0') + carry;
sum[i+j+1] = tmp % 10 + '0';
carry = tmp / 10;
}
sum[i] += carry;
}

size_t start = sum.find_first_not_of('0');
if(string::npos != start){
return sum.substr(start);
}
return "0";
}
};
Donate? comment?