0415 - Add String

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