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)); }
