0415 - Add String
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.
Examples
Input: num1 = "11", num2 = "123" Output: "134"
Input: num1 = "456", num2 = "77" Output: "533"
Input: num1 = "0", num2 = "0" Output: "0"
Constraints
1 <= num1.length, num2.length <= 104
num1 and num2 consist of only digits.
num1 and num2 don't have any leading zeros except for the zero itself.
Java Solution
class Solution {
public String addStrings(String num1, String num2) {
StringBuilder sb = new StringBuilder();
int p1 = num1.length()-1;
int p2 = num2.length()-1;
int carry = 0;
while(p1 >= 0 || p2 >= 0){
int dig1 = p1 >= 0 ? num1.charAt(p1) - '0' : 0;
int dig2 = p2 >= 0 ? num2.charAt(p2) - '0' : 0;
int value = (dig1 + dig2 + carry) % 10;
carry = (dig1 + dig2 + carry) / 10;
sb.append(value);
p1--;
p2--;
}
if(carry != 0) sb.append(carry);
return sb.reverse().toString();
}
}
Last updated