Add Binary

题目地址:
https://leetcode.com/problems/add-binary/description/

题目:


Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
解题思路:
这道题就是模仿之前的将两个list相加的方法。

代码:

public class AddBinary {

    public static void main(String[] args){
        AddBinary addBinary = new AddBinary();
        String a = "11";
        String b = "111";
        String rst = addBinary.addBinary(a, b);
        System.out.println(rst);
    }

    public String addBinary(String a, String b) {
        if (a == null || a.length() == 0) {
            return b;
        }
        if (b == null || b.length() == 0) {
            return a;
        }
        StringBuilder sb = new StringBuilder();
        int i = a.length() - 1;
        int j = b.length() - 1;
        int sum = Character.getNumericValue(a.charAt(i)) + Character.getNumericValue(b.charAt(j));
        sb.append(sum % 2);
        i--;
        j--;
        while(i >= 0 || j >= 0){
            sum = sum >= 2 ? 1 : 0;
            if(i >= 0){
                sum += Character.getNumericValue(a.charAt(i));
                i--;
            }
            if(j >= 0){
                sum += Character.getNumericValue(b.charAt(j));
                j--;
            }
            sb.append(sum % 2);
        }
        if(sum >= 2){
            sb.append(1);
        }
        return sb.reverse().toString();
    }

}


Comments

Popular Posts