首页 > 编程语言 > 详细

[LeetCode]题解(python):043-Multiply Strings

时间:2015-11-03 22:52:09      阅读:334      评论:0      收藏:0      [点我收藏+]

题目来源:

  https://leetcode.com/problems/multiply-strings/


 

题意分析:

  实现一个非负整数的大数相乘。


 

题目思路:

  做这题的时候本来我是打算将两个数拆成ab * cd的,但是用ptyhon实现的时候超时了,而用C同样的思想过是没有问题的。后来还是规规矩矩的用每个数拆开相乘。这是的时间复杂度是O(m*n)。


 

代码(python):

技术分享
 1 class Solution(object):
 2     def multiply(self, num1, num2):
 3         """
 4         :type num1: str
 5         :type num2: str
 6         :rtype: str
 7         """
 8         size1 = len(num1);size2 = len(num2)
 9         if size1 <= 5 and size2 <= 5:
10             tmp = int(num1) * int(num2)
11             return str(tmp)
12         num1 = num1[::-1];num2 = num2[::-1]
13         array = [0 for i in range(len(num1) + len(num2))]
14         for i in range(len(num1)):
15             for j in range(len(num2)):
16                 array[i + j] += int(num1[i]) * int(num2[j])
17         ans = []
18         for i in range(len(array)):
19             digit = array[i] % 10
20             carry = array[i] / 10
21             if i < len(array) - 1:
22                 array[i + 1] += carry
23             ans.insert(0,str(digit))
24         while ans[0] == 0 and len(ans) > 1:
25             del ans[0]
26         return ‘‘.join(ans)
View Code

 


 

转载请注明出处:http://www.cnblogs.com/chruny/p/4934403.html

[LeetCode]题解(python):043-Multiply Strings

原文:http://www.cnblogs.com/chruny/p/4934403.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!