给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1" 输出: "100"
示例 2:
输入: a = "1010", b = "1011" 输出: "10101"
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
System.out.println( addBinary("0", "0"));
}
public static String addBinary(String a, String b) {
int flag=0;
String res="";
if(a.length()!=b.length()){
if(a.length()>b.length()){
b="0"+b;
}else{
a="0"+a;
}
}
int i=a.length()-1;
int j=b.length()-1;
while(i>=0&&j>=0){
if(a=="0"&&b=="0"){
res="0"+res;
return res;
}
if(a.charAt(i)+b.charAt(j)+flag-96==0){
res="0"+res;
flag=0;
}else if(flag+a.charAt(i)+b.charAt(j)-96==1){
res="1"+res;
flag=0;
}else{
res="0"+res;
flag=1;
}
i--;
j--;
}
if(res.charAt(0)=='0'){
res="1"+res;
}
return res;
}
}