Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
The length of both num1 and num2 is < 5100.
Both num1 and num2 contains only digits 0-9.
Both num1 and num2 does not contain any leading zero.
You must not use any built-in BigInteger library or convert the inputs to integer directly.
public class Solution {
public String addStrings(String num1, String num2) {
StringBuilder sb = new StringBuilder();
int len1 = num1.length();
int len2 = num2.length();
int carry = 0;
int idx1 = num1.length(), idx2 = num2.length();
while (carry != 0 || idx1 != 0 || idx2 != 0) {
int digit = 0;
if(idx1 != 0) {
idx1--;
digit += num1.charAt(idx1) - '0';
}
if(idx2 != 0) {
idx2--;
digit += num2.charAt(idx2) - '0';
}
digit += carry;
if(digit > 9) carry = 1;
else carry = 0;
sb.append(digit%10);
}
return sb.reverse().toString();
}
}