43. Multiply Strings
来源:互联网 发布:重大网络教育学院官网 编辑:程序博客网 时间:2024/06/15 02:32
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.
- Converting the input string to integer is NOT allowed.
- You should NOT use internal library such as BigInteger.
思路:采用相加的办法。但是不能暴力相加,那样肯定超时!
我采用的方法是千位的跟千位的相加,百位的跟百位的相加。。。
例如:
num1="1234" , num2="456"
那么123400相加4次,12340相加5次,1234相加6次 。。。。
AC解:
class Solution {public: string addString(string num1,string num2) { int i = num1.length()-1; int j = num2.length()-1; int c = 0; int digitA,digitB; string s; while(i>=0 || j>=0 || c>0) { digitA = i>=0?(num1[i]-'0'):0; digitB = j>=0?(num2[j]-'0'):0; int sum = digitA+digitB+c; c = sum/10; s.insert(s.begin(),sum%10+'0'); i--; j--; } return s; } string multiply(string num1, string num2) { if(num1=="0" || num2=="0") return "0"; string ret; int num1_Size = num1.length(); int num2_Size = num2.length(); for(int i=0;i<num1_Size;i++) { string num2_copy(num2); num2_copy.insert(num2_copy.end(),num1_Size-1-i,'0'); for(int j=0;j<(num1[i]-'0');j++) ret=addString(ret,num2_copy); } return ret; }};
0 0
- [LeetCode]43.Multiply Strings
- LeetCode --- 43. Multiply Strings
- [Leetcode] 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- [leetcode] 43.Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings LeetCode
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- leetcode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- 用户登录后重定向到要访问页面
- AnjularJS中$scope和$rootScope的区别小结
- 慕课网--JS/jQuery中宽高的理解和应用
- Fragment中的onActivityResult不被调用
- 设置圆角图片或者圆形图片
- 43. Multiply Strings
- Webdriver - tooltip
- 编程中最没用的东西是源代码,最有用的东西是算法和数据结构(转载)
- 日期插件
- 采样之Metropolis Hastings算法
- 斐波那契堆
- 1005 the PygLatin-codeacademy
- 大型网站图片服务器架构的演进
- java的接口、类、属性、方法各有哪些修饰符