Algorithms and Data Structures/Coding Practices

LeetCode 67. Add Binary

brightlightkim 2022. 6. 14. 15:04

Given two binary strings a and b, return their sum as a binary string.

 

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

 

Constraints:

  • 1 <= a.length, b.length <= 104
  • a and b consist only of '0' or '1' characters.
  • Each string does not contain leading zeros except for the zero itself.

Solution: 

class Solution {
    public String addBinary(String a, String b) {
        int i = a.length()-1;
        int j = b.length()-1;
        int sum = 0;
        StringBuilder sb = new StringBuilder();
        while(i>=0 || j>=0){
            if(i>=0){
                sum = sum + a.charAt(i) - '0';
                i--;
            }            
            if(j>=0){
                sum = sum + b.charAt(j) - '0';
                j--;
            }
            sb.append(sum%2);
            sum = sum/2;            
        }
        if(sum!=0)
            sb.append(sum);
        
        return sb.reverse().toString();
    }
}