[LeetCode&Python] Problem 415. Add Strings
Given two non-negative integers 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.
class Solution(object): def addStrings(self, num1, num2): """ :type num1: str :type num2: str :rtype: str """ def str2num(i): if i=='0': return 0 elif i=='1': return 1 elif i=='2': return 2 elif i=='3': return 3 elif i=='4': return 4 elif i=='5': return 5 elif i=='6': return 6 elif i=='7': return 7 elif i=='8': return 8 elif i=='9': return 9 def num2str(i): if i==0: return '0' elif i==1: return '1' elif i==2: return '2' elif i==3: return '3' elif i==4: return '4' elif i==5: return '5' elif i==6: return '6' elif i==7: return '7' elif i==8: return '8' elif i==9: return '9' addone=0 ans="" num1=num1[::-1] num2=num2[::-1] if len(num2)>len(num1): temp=num1 num1=num2 num2=temp for i in range(len(num1)): if i<len(num2): n1=str2num(num1[i]) n2=str2num(num2[i]) s=n1+n2+addone s0=s%10 ans+=num2str(s0) if s>=10: addone=1 else: addone=0 else: n1=str2num(num1[i]) s=n1+addone s0=s%10 ans+=num2str(s0) if s>=10: addone=1 else: addone=0 if addone==1: ans+='1' return ans[::-1]