码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode_Add Binary

时间:2015-05-15 09:06:04      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:add binary   reverse   

描述:

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

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

思路:

将字符串从后向前进行相加,最后有进位的话再创造新的位数,最后将字符串反转,输出即可。

代码:

public String addBinary(String a, String b) {
        int len1=a.length();
        int len2=b.length();
        String string=null;
        if(len1>len2)
        {
        	string=a;
        	a=b;
        	b=string;
        }
        len1=a.length();
        len2=b.length();
        StringBuilder sBuilder=new StringBuilder();
        int temp=0;
        boolean flag=false;
        int span=len2-len1;
        int indexA=0;
        for(int i=len2-1;i>=0;i--)
        {
        	temp=0;
        	indexA=i-span;
        	if(indexA>=0)
        		temp+=a.charAt(indexA)-'0';
        	temp+=b.charAt(i)-'0';
        	if(flag)
        	{
        	    temp+=1;
        	    flag=false;
        	}
        	sBuilder.append(temp%2);
        	if(temp>=2)
        		flag=true;
        }
        if(flag)
        	sBuilder.append('1');
        return sBuilder.reverse().toString();
    }


leetcode_Add Binary

标签:add binary   reverse   

原文地址:http://blog.csdn.net/mnmlist/article/details/45739725

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!