import java.util.*;
public class Solution {
/**
*
* @param a string字符串
* @param b string字符串
* @return string字符串
*/
public String addBinary (String str1, String str2) {
// write code here
// 判断是否需要进位
boolean isJin = false;
List<Integer> list = new ArrayList<>();
for(int i = str1.length() - 1 , j = str2.length() - 1;;i--, j--){
if(i < 0 && j < 0){
break;
}
int jinWei = isJin? 1:0;
isJin = false;
int plus1 = i>=0 ? Integer.valueOf(str1.charAt(i)-'0') : 0;
int plus2 = j>=0 ? Integer.valueOf(str2.charAt(j)-'0') : 0;
int result = plus1 + plus2 + jinWei;
// 大于等于2说明要进位
if(result >= 2){
isJin = true;
result = result - 2;
}
list.add(result);
}
StringBuilder resultStr = new StringBuilder();
// 最高位如果需要进位,则给个1
if(isJin) {
resultStr.append(1);
}
for(int i = list.size() -1 ; i>=0 ; i--){
resultStr.append(list.get(i));
}
return resultStr.toString();
}
}