415. Add Strings
Given two non-negative integers, num1
and num2
represented as string, return the sum of num1
and num2
as a string.
You must solve the problem without using any built-in library for handling large integers (such as BigInteger
). You must also not convert the inputs to integers directly.
Example 1:
Input: num1 = "11", num2 = "123" Output: "134"
Example 2:
Input: num1 = "456", num2 = "77" Output: "533"
Example 3:
Input: num1 = "0", num2 = "0" Output: "0"
Constraints:
1 <= num1.length, num2.length <= 104
num1
andnum2
consist of only digits.num1
andnum2
don't have any leading zeros except for the zero itself.
solution:
class Solution {
public:
string addStrings(string num1, string num2) {
string result = "";
// string num = "";
// sum = num + sum;
int l1 = num1.length();
int l2 = num2.length();
if(l1 > l2)
{
string t(l1-l2 ,'0' );
num2 = t + num2;
l2 = l1;
}
else
if(l2 > l1)
{
string t(l2-l1 ,'0' );
num1 = t + num1;
l1 = l2 ;
}
int carry = 0;
for(int i = l1 -1 ; i >= 0 ; i--)
{
int a = num1[i] -48;
int b = num2[i] - 48;
int sum_num = a+b+carry;
if(sum_num /10 == 0 && sum_num != 10)
{
carry = 0;
char h =sum_num+48;
result = h + result ;
}
else
{
carry = 1;
int y = sum_num %10;
char h = y + 48;
result = h+ result ;
}
}
if(carry == 1)
{
result = "1"+result;
}
return result;
}
};
Comments
Post a Comment