首页 > 代码库 > leetcode - Multiply Strings
leetcode - Multiply Strings
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: std::string multiply(std::string num1, std::string num2) { if(num1 == "0" || num2 == "0") return "0"; int l1 = num1.size(),l2 = num2.size(); std::vector<int> vec1(l1,0); std::vector<int> vec2(l2,0); std::vector<int> res(l1+l2,0); for (int i = 0; i < l1; i++) { vec1[i] = num1[i] - '0'; } for (int i = 0; i < l2; i++) { vec2[i] = num2[i] - '0'; } for (int i = 0; i < l1; i++) { for (int j = 0; j < l2; j++) { res[i+j+1] += vec1[i] * vec2[j]; } } std::string s; for(int i = l1 + l2 - 1; i >= 0; i--) { if(res[i] > 0) res[i-1] += res[i] / 10; res[i] %= 10; s = (char)(res[i] + '0') + s; } return s[0] == '0' ? s.substr(1) : s; } };
leetcode - Multiply Strings
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。