Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
===========
Analysis:
Idea is to implement the manual calculation process. Which means, adding char by char from right to left with the adder.
public class Solution {
public String addBinary(String a, String b) {
int pointerA = a.length()-1;
int pointerB = b.length()-1;
String rs = "";
boolean adder = false;
while(pointerA>=0||pointerB>=0){
char charA;
char charB;
if(pointerA>=0) charA = a.charAt(pointerA);
else charA = '0';
if(pointerB>=0) charB = b.charAt(pointerB);
else charB = '0';
// 3 possible cases
if(charA=='1' && charB=='1'){
if(adder==true) rs="1" + rs;
else {
rs = "0" + rs;
adder = true;
}
}
else if(charA=='1' || charB=='1'){
if(adder==true) rs="0" +rs;
else rs = "1" +rs;
}
else if(charA=='0' && charB=='0'){
if(adder == true) {
rs = "1" + rs;
adder = false;
}
else rs = "0" + rs;
}
pointerA--;
pointerB--;
}
if(adder==true) rs = "1" + rs;
return rs;
}
}