LeetCode - Multiply Strings
2013-08-28 22:53
405 查看
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.
Note: The numbers can be arbitrarily large and are non-negative.
class Solution { public: void add(string &result, string &num){ int len1=result.size(),len2=num.size(); if(len1<len2){ string tmp(result); result.assign(num.begin(),num.end()); num.assign(tmp.begin(),tmp.end()); } int j=result.size()-1; int sum=0,flag=0; for(int i=num.size()-1;i>=0;i--,j--){ sum=result[j]+num[i]-'0'-'0'+flag; flag=sum/10; sum%=10; result[j]=sum+'0'; } for(;j>=0;j--){ sum=result[j]-'0'+flag; flag=sum/10; sum%=10; result[j]=sum+'0'; } if(flag){ result.insert(result.begin(),flag+'0'); } } void multiply(string &result,const string &num,const char &c){ int tmp=0,sign=0; for(int i=num.size()-1;i>=0;i--){ tmp=(num[i]-'0')*(c-'0')+sign; sign=tmp/10; tmp%=10; result.insert(result.begin(),tmp+'0'); } if(sign){ result.insert(result.begin(),sign+'0'); } } string multiply(string num1, string num2) { string result("0"),num3; if(num1=="0"||num2=="0"){ return result; } int len1=num1.size(),len2=num2.size(); if(len1<len2){ return multiply(num2,num1); } for(int i=len2-1;i>=0;i--){ num3.clear(); multiply(num3,num1,num2[i]); for(int j=0;j<len2-1-i;j++){ num3.insert(num3.end(),'0'); } add(result,num3); } return result; } };
相关文章推荐
- LeetCode: Multiply Strings
- LeetCode 043 Multiply Strings
- leetcode之Multiply Strings
- leetcode multiply strings
- LeetCode Multiply Strings
- leetcode Multiply Strings
- LeetCode 43: Multiply Strings
- Leetcode 43. Multiply StringsI
- [LeetCode] 大数问题,相加和相乘,题 Multiply Strings
- 【LeetCode】Multiply Strings
- [leetcode] Multiply Strings
- [leetcode]Multiply Strings
- LeetCode 43 Multiply Strings
- LeetCode解题报告—— Combination Sum & Combination Sum II & Multiply Strings
- ***(leetcode_string) Multiply Strings
- Multiply Strings ---leetcode
- [leetcode javascript解题]Multiply Strings
- [LeetCode]Multiply Strings
- LeetCode:Multiply Strings
- LeetCode 43 - Multiply Strings