Skip to content

Latest commit

 

History

History
93 lines (72 loc) · 1.81 KB

20210429.md

File metadata and controls

93 lines (72 loc) · 1.81 KB

Algorithm

415. Add Strings

Description

Given two non-negative integers, num1 and num2 represented as string, return the sum of num1 and num2 as a string.

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 and num2 consist of only digits.
  • num1 and num2 don't have any leading zeros except for the zero itself.

Follow up: Could you solve it without using any built-in BigInteger library or converting the inputs to integer directly?

Solution

class Solution {
    public String addStrings(String num1, String num2) {
        int i = num1.length()-1;
        int j = num2.length()-1;
        int carry = 0;
        String res = "";
        while(i>=0||j>=0){
            if(i>=0){
                carry += num1.charAt(i--)-'0';
            }
            if(j>=0){
                carry += num2.charAt(j--)-'0';
            }
            res = Integer.toString(carry%10) + res;
            carry/=10;
        }
        return carry==0?res:"1"+res;
    }
}
class Solution {
    public String addStrings(String num1, String num2) {
        int i = num1.length()-1;
        int j = num2.length()-1;
        int carry = 0;
        StringBuilder sb = new StringBuilder();
        while(i>=0||j>=0){
            if(i>=0){
                carry += num1.charAt(i--)-'0';
            }
            if(j>=0){
                carry += num2.charAt(j--)-'0';
            }
            sb.append(carry%10);
            carry /= 10;
        }
        sb = carry==0?sb:sb.append("1");
        return sb.reverse().toString();
    }
}

Discuss

Review

Tip

Share