字符串相乘

題目描述:

定給兩個以字符串形式表示的非負整數  num1 狀語從句:  num2,報道查看  num1 狀語從句:  num2 的乘積,它們的乘積也表示爲字符串形式。

示例1:

輸入: num1 =“2”,num2 =“3”
 輸出: “6”

示例2:

輸入: num1 =“123”,num2 =“456”
 輸出: “56088”

說明:

  1. num1 狀語從句:  num2 的長度小於110。
  2. num1狀語從句:  num2只所有遊戲數字  0-9
  3. num1和  num2 均不以零開頭,除非是數字0本身。
  4. 不能使用任何標準庫的大數類型(比如BigInteger)或直接將輸入轉換爲整數來處理
def multiply(num1, num2):
    re = [0] * (len(num1)+ len(num2))
    for i, e1 in enumerate(reversed(num1)):
        for j, e2 in enumerate(reversed(num2)):
            re[i+j] += int(e1) * int(e2)
            re[i+j+1] += re[i+j]//10
            re[i+j] = re[i+j]%10
    while len(re)>1 and re[-1] == 0:
        re.pop()
    return ''.join(map(str, re[::-1]))

def multiply(num1, num2):
    re = [0]*(len(num1) + len(num2))
    tp = len(re) - 1
    for i in reversed(num1):
        temp = tp
        for j in reversed(num2):
            re[temp] += int(i) * int(j)
            re[temp-1] += re[temp]//10
            re[temp] = re[temp]%10
            temp -= 1
        tp -= 1
        index = 0
        while index < len(re)-1 and re[index] == 0:
            index +=1
    return ''.join(map(str, re[index:]))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章