1 题目
2 思想
其实就是计算大整数乘法,还是比较简单的是吧。我觉得主要问题在于要熟悉各种常用的api,比如字符串翻转, enumerate
的使用等等。
3 代码
class Solution:
def multiply(self, num1: str, num2: str) -> str:
num1 = "".join(reversed(num1))
num2 = "".join(reversed(num2))
# 将两者翻转
res = [] # 记录所有的和
base = 1
for idx,a in enumerate(num1):
flag = 0 # 进位
tmp = ""
for b in num2:
cur = int(a) * int(b) + flag
flag, remain = divmod(cur,10)
tmp=str(remain) + tmp
# print(a,b,flag,tmp)
if flag: # 如果有进位
tmp = str(flag) + tmp
res.append(int(tmp)*base)# 转为int
base *= 10
# 对res求和
return str(sum(res))