43. Multiply Strings
Input: num1 = "2", num2 = "3"
Output: "6"Input: num1 = "123", num2 = "456"
Output: "56088"string multiply(string num1, string num2) { // time: O(m * n); space: O(m + n)
int m = num1.length(), n = num2.length();
string res(m + n, '0');
for (int i = m - 1; i >= 0; --i) {
int carry = 0;
for (int j = n - 1; j >= 0; --j) {
int sum = (res[i + j + 1] - '0') + (num1[i] - '0') * (num2[j] - '0') + carry;
res[i + j + 1] = sum % 10 + '0';
carry = sum / 10;
}
res[i] += carry;
}
int startPos = res.find_first_not_of("0");
return startPos != string::npos ? res.substr(startPos) : "0";
}Last updated