您的位置:首页 > 其它

Multiply Strings

2015-04-17 15:41 155 查看
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) {
std::string result;
std::vector<int> data;
int total = num1.size() + num2.size() + 1;
data.resize(total, 0);
for (std::size_t i=0; i<num1.size(); i++) {
for (std::size_t j=0; j<num2.size(); j++) {
data[i+j+1] += (num1[i]-'0') * (num2[j]-'0');
}
}
for (int i=num1.size()+num2.size()-1; i>=0; i--) {
if (data[i] >= 10) {
data[i-1] += data[i] / 10;
data[i] %= 10;
}
result.insert(result.begin(), data[i] + '0');
}
while (result.size() > 1 && result[0] == '0') {
result = result.erase(0, 1);
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: