Given two non-negative numbers num1
and num2
represented as string, return the sum of num1
and num2
.
Note:
- The length of both
num1
andnum2
is < 5100. - Both
num1
andnum2
contains only digits0-9
. - Both
num1
andnum2
does not contain any leading zero. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
Subscribe to see which companies asked this question
这个简直很直白,最后一行注释掉的是好用的python的整数类型
总感觉程序哪里写的有点儿丑~~~
class Solution(object):
def addStrings(self, num1, num2):
l1 = len(num1)
l2 = len(num2)
lmin = min(l1,l2)
lmax = max(l1,l2)
res = [0] * (lmax+1)
#print res
for i in xrange(1,lmin+1):
res[-i] = int(num1[-i]) + int(num2[-i])
#print i,res
if l1 > l2:
for i in xrange(lmin+1,lmax+1):
res[-i] = int(num1[-i])
else:
for i in xrange(lmin+1,lmax+1):
res[-i] = int(num2[-i])
for i in xrange(1,lmax+1):
if res[-i] > 9:
res[-i] -= 10
res[-i-1] += 1
rres = ''
for i in res:
rres += str(i)
if rres[0] == '0':
rres = rres[1:]
return rres
#return str(int(num1) + int(num2))