415 字符串相加-简单

题目:

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

算法分析:

从尾部到头部依次计算。

// date 2020/03/28
func addStrings(num1 string, num2 string) string {
    ans := ""
    carry, v1, v2 := 0, 0, 0
    i, j := len(num1)-1, len(num2)-1
    for i >= 0 || j >= 0 || carry != 0 {
        v1, v2 = 0, 0
        if i >= 0 {
            v1 = int(num1[i] - '0')
        }
        if j >= 0 {
            v2 = int(num2[j] - '0')
        }
        t := carry + v1 + v2
        carry = t / 10
        ans = fmt.Sprintf("%d", t % 10) + ans
        i--
        j--
    }
    return ans
}

最后更新于