给定s和t两个字符串,如:s = ‘2’,t = ‘3’ ,返回结果 ‘6’。
其中一种解法,使用辅助函数,将不使用内置函数,将字符串转化为数字,然后对数字相乘。
class Solution:
def multiply(self, num1, num2):
def helper(s):
dict = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}
n = len(s)-1
num = 0
for i in range(n+1):
for j in dict.keys():
if s[i] == j:
num += dict(j)*10**(n-i)
return num
return str(helper(num1)*helper(num2))
还有一种思路,但是还没所有实现。
比如123 X 45 = (123 X 5)+(123 X 4)X 10
= (1*10**(n-i) 5 + 210^(n-i)5 + 310**(n-i)*5) + ……
i 从0到len(num),然后依次进行。不过这样做的依然在字符串中的数字大的时候计算时间会很长。