Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1
or 0
.
Example 1:
Input: a = "11", b = "1" Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"
/**
* @param String $a
* @param String $b
* @return String
*/
function addBinary($a, $b) {
$a_arr=array_reverse(str_split($a));
$b_arr=array_reverse(str_split($b));
if(count($a_arr)>=count($b_arr)){
$nums=count($a_arr);
}else{
$nums=count($b_arr);
}
$c_arr=[];
$status=0;
for($i=0;$i<$nums;$i++){
$value=($a_arr[$i]?$a_arr[$i]:0)+($b_arr[$i]?$b_arr[$i]:0)+$status;
$status=0;
if( $value>1){
$status=1;
}
$c_arr[$i]= $value%2;
}
if($status==1){
$c_arr[count($c_arr)]=$status;
}
return implode(array_reverse($c_arr));
}