天天看點

【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))