Leetcode: Add Binary

来源:互联网 发布:电信网络电视费用 编辑:程序博客网 时间:2024/06/05 09:54

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"

Return "100".

Use another string, or a stringbuilder to store the result. Start with the last characters of the two strings, and concatenate the adding result at the beginning of the new string. 

public class Solution {    public String addBinary(String a, String b) {        if (a == null && b == null) {            return null;        }                String res = "";        int la = a.length();        int lb = b.length();        int carry = 0;                for (int i = 0; i < Math.max(la, lb); i++) {            int ca = 0;            int cb = 0;            if (la - 1 - i >= 0) {                ca = (int) (a.charAt(la - 1 - i) - '0');            }             if (lb - 1 - i >= 0) {                cb = (int) (b.charAt(lb - 1 - i) - '0');            }                        if (ca + cb + carry == 3) {                res = "1" + res;;                carry = 1;            } else if (ca + cb + carry == 2) {                res = "0" + res;                carry = 1;            } else {                res = String.valueOf(ca + cb + carry) + res;                carry = 0;            }        }                if (carry == 1) {            res = "1" + res;        }                return res;    }}

0 0