LeetCode 87 Add Binary

来源:互联网 发布:java http 文件上传 编辑:程序博客网 时间:2024/04/29 12:43
Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"

Return "100".

分析:

用栈存储中间结果。

这个代码写得不好,有空改进。

public class Solution {    public String addBinary(String a, String b) {        if(a == null || b == null || a.length()==0 || b.length()==0)            return null;        int i = a.length()-1;        int j = b.length()-1;                Stack<Character> st = new Stack<Character>();        int p1, p2;        int sum, carry=0;        while(i>=0 || j>=0){            if(i<0){                p1 = 0;                p2 = b.charAt(j)-48;            }else if(j<0){                p1 = a.charAt(i)-48;                p2 = 0;            }else{                p1 = a.charAt(i)-48;                p2 = b.charAt(j)-48;            }            sum = p1+p2+carry;            if(sum == 0){                st.push('0');                carry=0;            }else if(sum==1){                st.push('1');                carry=0;            }else if(sum == 2){                st.push('0');                carry = 1;            }else if(sum == 3){                st.push('1');                carry = 1;            }            i--;            j--;        }        if(carry == 1)            st.push('1');        StringBuffer sb = new StringBuffer();        while(!st.empty())            sb.append(st.pop());                    return sb.toString();    }}


0 0
原创粉丝点击