题意:Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
The length of both num1 and num2 is < 5100.
Both num1 and num2 contains only digits 0-9.
Both num1 and num2 does not contain any leading zero.
You must not use any built-in BigInteger library or convert the inputs to integer directly.
思路:用if代替填充0,从低位像高位计算:
class Solution(object):
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
val, carry, ans= 0, 0, ''
for i in xrange(max(len(num1),len(num2))):
val = carry
if i < len(num1):
val += ord(num1[~i])-ord('0')
if i < len(num2):
val += ord(num2[~i])-ord('0')
carry = val/10
val %= 10
ans += str(val)
if carry:
ans += str(carry)
return ans[::-1]