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