AddBinary

来源:互联网 发布:李易峰睡杨幂 知乎 编辑:程序博客网 时间:2024/06/06 02:09

题目来源:leetcode

/** * Created by a819 on 2017/8/10. */public class AddBinary {    public String addBinary(String a, String b) {        a=new StringBuilder(a).reverse().toString();        b=new StringBuilder(b).reverse().toString();        System.out.println(a);        System.out.println(b);        int flag=0;//进位标志        int cur=0;//当前为的结果        int len=0;//相同位数的长度        StringBuilder result=new StringBuilder();        //int len=?b.length():a.length();        if (a.length()>=b.length()) {            int i=0;            len=b.length();            for (i = 0; i <len; i++) {                 cur = (a.charAt(i) - '0') + (b.charAt(i) - '0') + flag;                if (cur <= 1) {                    result.append(cur);                    flag = 0;                } else {                    result.append(cur % 2);                    flag = 1;                }            }            while (i<a.length()){               cur=a.charAt(i)-'0'+flag;                if (cur <= 1) {                    result.append(cur);                    flag = 0;                } else {                    result.append(cur % 2);                    flag = 1;                }                i++;            }            if (flag==1)                result.append(1);        }//如果b长        else {            int i=0;            len=a.length();            for (i = 0; i < len; i++) {                cur = (a.charAt(i) - '0') + (b.charAt(i) - '0') + flag;                if (cur <= 1) {                    result.append(cur);                    flag = 0;                } else {                    cur %=2;                    result.append(cur);                    flag = 1;                }            }            while (i<b.length()){                cur=b.charAt(i)-'0'+flag;                if (cur <= 1) {                    result.append(cur);                    flag = 0;                } else {                    cur %= 2;                    result.append(cur);                    flag = 1;                }                i++;            }            if (flag==1)                result.append(1);        }        return result.reverse().toString();    }    public static void main(String[] args) {        AddBinary ad=new AddBinary();        System.out.println(ad.addBinary("0","0"));    }}

原创粉丝点击