class Solution {
public String addBinary(String a, String b) {
StringBuffer stringBuffer = new StringBuffer();
StringBuffer x = new StringBuffer(a).reverse();
StringBuffer y = new StringBuffer(b).reverse();
int j = 0;
int i;
for (i = 0;i < x.length()&&i<y.length();i++){
int temp = (x.charAt(i)-'0'+y.charAt(i)-'0'+j)%2;
j = (x.charAt(i)-'0'+y.charAt(i)-'0'+j)/2;
if (temp == 0){
stringBuffer.insert(0,"0");
}else{
stringBuffer.insert(0,"1");
}
}
if (i >= x.length()){
for (i = i;i<y.length();i++){
int temp = (y.charAt(i)-'0'+j)%2;
j = (y.charAt(i)-'0'+j)/2;
if (temp == 0){
stringBuffer.insert(0,"0");
}else{
stringBuffer.insert(0,"1");
}
}
} else if(i >= y.length()){
for (i = i;i < x.length();i++){
int temp = (x.charAt(i)-'0'+j)%2;
j = (x.charAt(i)-'0'+j)/2;
if (temp == 0){
stringBuffer.insert(0,"0");
}else{
stringBuffer.insert(0,"1");
}
}
}
if (j == 1){
stringBuffer.insert(0,"1");
}
return stringBuffer.toString();
}
}
剑指 Offer II 002. 二进制加法(Java题解)
最新推荐文章于 2024-10-04 20:45:38 发布