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

网易游戏公司福利 606人发布