使用不进位的长乘法进行计算,然后依次进位,注意数组顺序颠倒和首段多出的0。
用例通过率: 100.00% 运行时间: 30ms 占用内存: 6520KB。
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# @param s string字符串 第一个整数
# @param t string字符串 第二个整数
# @return string字符串
#
class Solution:
def solve(self, s, t):
s = list(map(int, list(s)))
s.reverse()
t = list(map(int, list(t)))
t.reverse()
ans = [0]*(len(s)+len(t))
for i in range(0, len(s)):
for j in range(0, len(t)):
ans[i+j] += s[i]*t[j]
carry = 0
for i in range(0, len(ans)):
ans[i] += carry
carry = int(ans[i]/10)
ans[i] = str(ans[i] % 10)
while ans[-1] == '0' and len(ans) > 1:
ans.pop()
ans.reverse()
return ''.join(ans)


京公网安备 11010502036488号