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) {
// Start typing your Java solution below
// DO NOT write main() function
int l1=a.length(),l2=b.length();
int k=Math.max(l1,l2)+1;
int res[]=new int[k];
int i=l1-1,j=l2-1,x=0,y=0;
int carry=0;
while(k>0){
x=0; y=0;
if(i>=0) x=a.charAt(i)-'0';
if(j>=0) y=b.charAt(j)-'0';
res[k-1]=x^y^carry;
carry=(x&y)|(x&carry)|(y&carry);
i--;
j--;
k--;
}
StringBuilder s=new StringBuilder();
i=0;
while(i<res.length&&res[i]==0) i++;
if(i==res.length) return "0";
for(;i<res.length;i++) s.append(res[i]);
return new String(s);
}
}
本文介绍了一种解决两个二进制字符串相加问题的方法。通过实现一个Java类`Solution`,该类中定义了一个名为`addBinary`的公共方法,此方法接收两个二进制字符串作为参数,并返回它们相加后的二进制字符串结果。
1938

被折叠的 条评论
为什么被折叠?



