码迷,mamicode.com
首页 > 其他好文 > 详细

【LeetCode题意分析&解答】43. Multiply Strings

时间:2016-03-22 00:32:21      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

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.

题意分析:

  本题是求两个用string表示的非负大数的乘积,乘数可以是任意大小。

解答:

  可以用一个临时List表示乘积的每一位,然后对两个乘数每一位两两相乘,并将结果填到相应的List坐标中即可。

AC代码:

class Solution(object):
    def multiply(self, num1, num2):
        ret_list = [0] * (len(num1) + len(num2))
        for i, vi in enumerate(reversed(num1)):
            for j, vj in enumerate(reversed(num2)):
                ret_list[i + j] += int(vi) * int(vj)
                ret_list[i + j + 1] += ret_list[i + j] / 10
                ret_list[i + j] %= 10
        while len(ret_list) > 1 and ret_list[-1] == 0:
            ret_list.pop()
        return ‘‘.join(map(str, ret_list[::-1]))

 

【LeetCode题意分析&解答】43. Multiply Strings

标签:

原文地址:http://www.cnblogs.com/zhuifengjingling/p/5304197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!