题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
func solve( s string , t string ) string {
if s=="" {
return t
}
if t=="" {
return s
}
sList,tList := []byte(s),[]byte(t)
reverse(sList)
reverse(tList)
m,n:= len(sList),len(tList)
i,j:=0,0
p:= 0
var ans []byte
for {
if i>=m && j>=n {
break
}
var tmpa,tmpb int
if i>=m {
tmpa = 0
}else {
tmpa = int(sList[i]-'0')
}
if j>=n {
tmpb = 0
}else {
tmpb = int(tList[j]-'0')
}
sum:= tmpa+tmpb+p
if sum>=10 {
p = 1
sum-=10
}else {
p = 0
}
ans = append(ans,byte(sum+'0'))
i++
j++
}
if p>0 {
ans = append(ans,byte(p+'0'))
}
reverse(ans)
return string(ans)
}
func reverse(list []byte) {
l,r:=0,len(list)-1
for l<r {
list[l],list[r] = list[r],list[l]
l++
r--
}
}


