1. 程式人生 > >leetcode43. Multiply Strings

leetcode43. Multiply Strings

python3:

class Solution:
    def multiply(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        carry=0
        sum1=''
        num1 = num1[::-1]
        num2 = num2[::-1]
        arr = [0 for i in range(len(num1)+len(num2))]
        for
i in range(len(num1)): for j in range(len(num2)): arr[i+j] = arr[i+j] + int(num1[i])*int(num2[j]) for i in range(len(arr)): number = int((arr[i]+carry)%10) #當前位 carry = (arr[i]+carry)/10 #進位 sum1 = str(number)+sum1 while
(sum1[0]=='0' and len(sum1)>=2): sum1=sum1[1:] return sum1

借鑑這裡 https://blog.csdn.net/xiaoling_000666/article/details/80427322#commentsedit 不過原博主寫錯了,少了一個int(),結果是錯的,特此更正。

總結:

  • 建立一個全零列表:arr = [0 for i in range(len(num1)+len(num2))]
  • 字串的 a+b和b+a不是一回事,一定要注意,比如說sum1 = str(number)+sum1
    sum1 = sum1+str(number)意義是不一樣的,前者表示在sum前面新增,後者表示在sum後面新增。