题解 | #大数加法#
大数加法
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) }