Add Binary

问题描述:

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

For example,
a = "11"
b = "1"
Return "100".

public class AddBinary 
{
	public String addBinary(String a, String b) 
	{
        int lenA = a.length()-1;
        int lenB = b.length()-1;
        int carry = 0;
        StringBuffer sb = new StringBuffer();
        while(lenA >= 0 && lenB >= 0)
        {
        	char c = (char) ((a.charAt(lenA)-'0')+(b.charAt(lenB)-'0')+carry+'0');
        	if(c>='2')
        	{
        		c -= 2;
        		carry = 1;
        	}
        	else
        	{
        		carry = 0;
        	}
        	sb.append(c);
        	lenA --;
        	lenB --;
        }
        if(lenA < 0)
        {
        	while(lenB >= 0)
        	{
        		char c =(char)(b.charAt(lenB)-'0'+carry+'0');
        		if(c >= '2')
        		{
        			c -= 2;
        			carry = 1;
        		}
        		else
        		{
        			carry = 0;
        		}
        		sb.append(c);
        		lenB --;
        	}
        	
        }
        if(lenB < 0)
        {
        	while(lenA >= 0)
        	{
        		char c =(char)(a.charAt(lenA)-'0'+carry+'0');
        		if(c >= '2')
        		{
        			c -= 2;
        			carry = 1;
        		}
        		else
        		{
        			carry = 0;
        		}
        		sb.append(c);
        		lenA --;
        	}
        }
        if(carry == 1)
        {
        	sb.append((char)(carry+'0'));
        }
        sb.reverse();
        return sb.toString();
    }
}
原文地址:https://www.cnblogs.com/masterlibin/p/5777582.html