题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
func solve(s string, t string) string {
lens := len(s)
lent := len(t)
cap := lens + 1
if lent > cap {
cap = lent + 1
}
arr := make([]int, cap)
var num int = '0'
i, j, k, c := lens-1, lent-1, 0, 0
for i >= 0 || j >= 0 {
arr[k] = c
c = 0
if i >= 0 {
arr[k] += int(s[i]) - num
i--
}
if j >= 0 {
arr[k] += int(t[j]) - num
j--
}
if arr[k] >= 10 {
arr[k] -= 10
c = 1
}
k++
}
if c > 0 {
arr[k] = c
k++
}
res := make([]byte, k)
for i = 0; i < k; i++ {
res[k-1-i] = byte(arr[i] + num)
}
return string(res)
}
查看8道真题和解析
阿里云成长空间 794人发布