【leetcode 题解】415. Add Strings【E】

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

Note:

  1. The length of both num1 and num2 is < 5100.
  2. Both num1 and num2 contains only digits 0-9.
  3. Both num1 and num2 does not contain any leading zero.
  4. 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))


你可能感兴趣的:(Python,算法,字符串)