题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ func solve(s string, t string) string { // write code here if s == "" && t == "" { return "0" } if s == "" { return t } if t == "" { return s } //计算结果 res := make([]byte, 0) var offset byte = 0 var tmp10 byte = '1' + '9' i, j := len(s)-1, len(t)-1 for ; i >= 0 || j >= 0; i, j = i-1, j-1 { var ( c1 byte = '0' c2 byte = '0' ) if i >= 0 { c1 = s[i] } if j >= 0 { c2 = t[j] } cv := c1 + c2 + offset if cv >= tmp10 { res = append(res, cv-tmp10+'0') offset = 1 } else { res = append(res, cv-'0') offset = 0 } } if offset == 1 { res = append(res, '1') } //逆序res for i, j = 0, len(res)-1; i < j; i, j = i+1, j-1 { res[i], res[j] = res[j], res[i] } return string(res) }