LeetCode 43. 字符串相乘 Go 题解
原题链接
中等
作者:
lkm
,
2021-12-13 21:57:34
,
所有人可见
,
阅读 222
// yxc go实现
func multiply(num1 string, num2 string) string {
m, n := len(num1), len(num2)
var a, b []int
for i := m - 1; i >= 0; i-- {
a = append(a, int(num1[i]-'0'))
}
for i := n - 1; i >= 0; i-- {
b = append(b, int(num2[i]-'0'))
}
c := make([]int, m+n)
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
c[i+j] += a[i] * b[j]
}
}
//求和
t := 0
for i := 0; i < m+n; i++ {
t += c[i]
c[i] = t % 10
t /= 10
}
// 去除首位的0
k := m + n - 1
for c[k] == 0 && k > 0 {
k--
}
res := ""
for i := k; i >= 0; i-- {
res += string(c[i] + '0')
}
return res
}