[lintcode easy]Add Binary

Add Binary

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

 
Example

a = 11

b = 1

Return 100

 

solution:

比较两个string的长度,将长读较小的string左边用0补齐。

设置进位标志flag。循环结束后如果进位标识大于0,则返回进位加上其他string;否则返回新string;

char 0对应ASCII码表中30

1对应31。。。。减去0所对应的值以后就得到了1,0的数值

 

代码参考

public class Solution {
    /**
     * @param a a number
     * @param b a number
     * @return the result
     */
    public String addBinary(String a, String b) {
        // Write your code here
        
        
        int m=a.length();
        int n=b.length();
        int flag=0;
        String sum="";
        
        int maxLen=Math.max(m,n);
        for(int i=0;i<maxLen;i++)
        {
            int p=0,q=0;
            if(i<m)
            {
                p=a.charAt(m-1-i)-'0';
            }
            else
            {
                p=0;
            }
            
            if(i<n)
            {
                q=b.charAt(n-1-i)-'0';
            }
            else
            {
                q=0;
            }
            
            int temp=p+q+flag;
            flag=temp/2;
            sum=temp%2+sum;
        }
        if(flag==0)
        {
            return sum;
        }
        else
        {
            return "1"+sum;
        }

    }
}

 

 

 

posted on 2015-11-10 03:24  一心一念  阅读(130)  评论(0编辑  收藏  举报

导航