0
点赞
收藏
分享

微信扫一扫

【LeetCode】43. 字符串相乘

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))


举报

相关推荐

0 条评论