给定两个字符串形式的非负整数 num1num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger ), 也不能直接将输入的字符串转换为整数形式。
示例 1:

  1. 输入:num1 = "11", num2 = "123"
  2. 输出:"134"

示例 2:

输入:num1 = "456", num2 = "77"
输出:"533"

示例 3:

输入:num1 = "0", num2 = "0"
输出:"0"

提示:

  • 1 <= num1.length, num2.length <= 10^4
  • num1num2 都只包含数字 0-9
  • num1num2 都不包含任何前导零

    解法一:模拟

    这里有一点需要注意的是:

  • byte ‘9’ 转字符串可以直接使用 '9' - '0' 即可

    func addStrings(num1 string, num2 string) string {
      flag := 0
      n1 := len(num1) - 1
      n2 := len(num2) - 1
      var res string
      for n2 >= 0 || n1 >= 0 || flag != 0 {
          tmp := 0
          if n1 >= 0 {
              tmp += int(num1[n1] - '0')
              n1--
          }
          if n2 >= 0 {
              tmp += int(num2[n2] - '0')
              n2--
          }
          tmp += flag
          if tmp >= 10 {
              tmp %= 10
              flag = 1
          } else {
              flag = 0
          }
          res = strconv.Itoa(tmp) + res
      }
      return res
    }