1. 概述
给两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字
1和0。提示:
每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。
1 <= a.length, b.length <= 10^4
字符串如果不是 “0” ,就都不含前导零。
2. 解题
<?phpclass Solution {/*** @param String $a* @param String $b* @return String*/public function addBinary($a, $b) {$maxStr = strlen($a) > strlen($b) ? $a : $b;$maxLen = strlen($maxStr);$a = strrev($a);$b = strrev($b);$ret = '';$carry = 0;for ($i = 0; $i < $maxLen; $i++) {$a[$i] = $a[$i] ?? 0;$b[$i] = $b[$i] ?? 0;$tmp = $a[$i] + $b[$i] + $carry;if ($tmp > 1) {$carry = 1;$remainder = $tmp % 2;} else {$carry = 0;$remainder = $tmp;}$ret .= $remainder;}if ($carry) {$ret .= 1;}$ret = strrev($ret);return $ret;}}$a = "1010";$b = "1011";$cls = new Solution();$r = $cls->addBinary($a, $b);echo $r;
