[Python手撕]字符串相乘
class Solution:
def multiply(self, num1: str, num2: str) -> str:
def multi(num1,num2):
return (ord(num1)-ord('0')) * (ord(num2)-ord('0'))
n = len(num1)
m = len(num2)
nums = []
# 双重循环获取每个数位组合的乘积
for i in range(m-1,-1,-1):
temp = [0]*n
for j in range(n-1,-1,-1):
temp[j] = multi(num1[j],num2[i])
# 把 10 10改成 1 1 0
for j in range(n-1,-1,-1):
if temp[j] >= 10 and j >0:
temp[j-1] += 1
temp[j] -= 10
elif temp[j] >= 10 and j==0:
temp[j] -= 10
temp.insert(0,1)
# 把1 1 0改成 110
num = 0
for t in temp:
num *= 10
num += int(t)
nums.insert(0,num)
res = 0
for n in nums:
res *= 10
res += n
return str(res)
合集:
手撕算法
Buy me a cup of coffee ☕.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南