Multiply Strings

来源:互联网 发布:关键词排名优化方案 编辑:程序博客网 时间:2024/04/29 20:57

Given two numbers represented as strings, return multiplication of the numbers as a string.

Note: The numbers can be arbitrarily large and are non-negative.


class Solution {public:    string multiply(string num1, string num2){if(num1 == "0" || num2 == "0") return "0";int size1 = num1.size(), size2 = num2.size();string res;for (int i = size2 - 1; i >= 0; i--){if (num2[i] == 0) continue;int carry = 0;for (int j = size1 - 1; j >= 0; j--){int multi = (num2[i] - '0') * (num1[j] - '0');multi += carry;if (multi > 0){while ((int)res.size() - 1 < (size1 - 1 - j + size2 - 1 -i))res.push_back('0');}elsecontinue;multi += res[size1 + size2 - 2 - i -j] - '0';carry = multi / 10;res[size1 + size2 - 2 - i -j] = multi % 10 + '0';}if (carry > 0)res.push_back(carry + '0');}reverse(res.begin(), res.end());return res;    }};


0 0