luoheng
10/26/2019 - 10:05 AM

addStrings

func addStrings(num1 string, num2 string) string {
    if len(num1) < len(num2) {
        num1, num2 = num2, num1
    }
    res := make([]byte, len(num1)+1)
    var more byte
    for i := 0; i < len(num1); i++ {
        s, e := num1[len(num1)-1-i] - '0', byte('0')
        if i >= len(num2) {
            e = 0
        } else {
            e = num2[len(num2)-1-i] - '0'
        }
        sum := s + e + more
        if sum < 10 {
            res[len(res)-1-i] = sum + '0'
            more = 0
        } else {
            res[len(res)-1-i] = sum % 10 + '0'
            more = sum / 10
        }
    }
    if more != 0 {
        res[0] = more + '0'
        return string(res)
    }
    return string(res[1:])
}