【leetcode】Multiply Strings
2015-05-18 21:35
309 查看
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.
思路:
给定两个字符串的数字,进行相乘,然后输出结果。
这个题目其实就按照乘法的法则一个个数进行相乘,然后累积到res中。由于string的加法还是比较麻烦的,因此先用vector存储临时的结果。
class Solution { public: string multiply(string num1, string num2) { if(num1=="0"||num2=="0") return "0"; string res; int la=num1.length()-1; int lb=num2.length()-1; vector<int> tpres(la+lb+2,0); int start=la+lb+1; for(int i=lb;i>=0;i--) { int beg=start; int cur=0; for(int j=la;j>=0;j--) { int tempmul=(int)(num1[j]-'0')*(int)(num2[i]-'0')+cur; tpres[beg]+=tempmul; cur=tpres[beg]/10; tpres[beg]=tpres[beg]%10; beg--; } if(cur!=0) { tpres[beg]=cur; } start--;//被乘数第二位和乘数相乘的时候,此时获得的数实际上有个10倍的关系 } if(tpres[0]!=0) { res.push_back('0'+tpres[0]); } for(int i=1;i<tpres.size();i++) { res.push_back('0'+tpres[i]); } return res; } };
相关文章推荐
- leetcode:Multiply Strings
- leetcode-43 Multiply Strings
- LeetCode (43) Multiply Strings
- [Leetcode]#43 Multiply Strings
- LeetCode 43 Multiply Strings
- leetcode---Multiply Strings---大整数乘法
- leetcode Multiply Strings
- Leetcode 43 Multiply Strings
- LeetCode (19) Multiply Strings
- leetcode Multiply Strings
- 【LeetCode】43. Multiply Strings
- LeetCode-43-Multiply Strings 模拟
- Leetcode 43. Multiply Strings
- Multiply Strings[LeetCode]
- leetcode 43: Multiply Strings
- 【LeetCode】Multiply Strings
- Leetcode: Multiply Strings
- LeetCode Multiply Strings
- leetcode-Multiply Strings
- Leetcode -- Multiply Strings