leetcode 每日一题 43. 字符串相乘
竖式乘法
思路:
代码:
class Solution: def multiply(self, num1: str, num2: str) -> str: if num1 == '0' or num2 == '0': return '0' len1,len2 = len(num1),len(num2) res = [0]*(len1+len2) for i in range(len1-1,-1,-1): for j in range(len2-1,-1,-1): mul = (ord(num1[i])-ord('0'))*(ord(num2[j])-ord('0')) sumr = mul+res[i+j+1] res[i+j+1] = sumr%10 res[i+j] += sumr//10 size = 0 for i in range(len(res)): if res[i]!=0: break size += 1 new_res = [str(x) for x in res] resStr = ''.join(new_res) return resStr[size:]