classSolution:defmultiply(self, num1:str, num2:str)->str:if num1=="0"or num2=="0":return"0"
m,n=len(num1),len(num2)
ansArr=[0]*(m+n)for i inrange(m-1,-1,-1):#从m-1开始,逐一递减,递减至-1的前面那个元素的值0
x=int(num1[i])for j inrange(n-1,-1,-1):
ansArr[i+j+1]+=x*int(num2[j])#index为相同竖列的数相乘for i inrange(m+n-1,0,-1):
ansArr[i-1]+=ansArr[i]//10#依次放入相应的位数
ansArr[i]%=10
index=1if ansArr[0]==0else0
ans="".join(str(x)for x in ansArr[index:])return ans
全排列
classSolution:defpermute(self, nums: List[int])-> List[List[int]]:
res=[]defbacktrack(nums,temp):ifnot nums:
res.append(temp)for i inrange(len(nums)):
backtrack(nums[:i]+nums[i+1:],temp+[nums[i]])
backtrack(nums,[])return res
字符串相乘class Solution: def multiply(self, num1: str, num2: str) -> str: if num1=="0" or num2=="0": return "0" m,n=len(num1),len(num2) ansArr=[0]*(m+n) for i in range(m-1,-1,-1): #从m-1开始,逐一递减,递减至-1的前面那个元素的值