字符串相加
模拟进位
可以固定模 10。
function addStrings(num1: string, num2: string): string {
let n1 = num1.length - 1, n2 = num2.length - 1, carry = false
let ret = []
while (n1 >= 0 || n2 >= 0 || carry) {
const sum = (Number(num1[n1]) || 0) + (Number(num2[n2]) || 0) + (carry ? 1 : 0)
if (carry) {
carry = false
}
if (sum >= 10) {
carry = true
}
// push + reverse 效率更高
ret.unshift(sum % 10)
n1--
n2--
}
return ret.join('')
}