## Contents

Contents

Given two non-negative integers, `num1` and `num2` represented as string, return the sum of `num1`and `num2` as a string.

You must solve the problem without using any built-in library for handling large integers (such as `BigInteger`). You must also not convert the inputs to integers directly.

Example 1:

 ``````1 2 `````` ``````Input: num1 = "11", num2 = "123" Output: "134" ``````

Example 2:

 ``````1 2 `````` ``````Input: num1 = "456", num2 = "77" Output: "533" ``````

Example 3:

 ``````1 2 `````` ``````Input: num1 = "0", num2 = "0" Output: "0" ``````

Constraints:

• `1 <= num1.length, num2.length <= 104`
• `num1` and `num2` consist of only digits.
• `num1` and `num2` don’t have any leading zeros except for the zero itself.
###### 解题思路：

1. 把两个字符串反向。
2. 把每一位变成数字，模拟进位计算
 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 `````` ``````class Solution(object): def addStrings(self, num1, num2): """ :type num1: str :type num2: str :rtype: str """ ans='' _up=0 while len(num1)>0 and len(num2)>0: _1=int(num1[-1]) _2=int(num2[-1]) num1=num1[:-1] num2=num2[:-1] _sum=_1+_2+_up if _sum>9: _up=1 else: _up=0 ans+=str(_sum%10) num='' if len(num1)>0: num=num1 elif len(num2)>0: num=num2 while len(num)>0: _1=int(num[-1]) num=num[:-1] _sum=_1+_up if _sum>9: _up=1 else: _up=0 ans+=str(_sum%10) if _up==1: ans+='1' return ans[::-1] ``````