《leetCode-php》二进制字符串相加

给出两个用字符串表示的二进制数,返回他们的和(也用字符串表示) 

例如: 

a ="11"
b ="1"
返回"100".

<?php
function addBinary($a, $b) {
    $i = strlen($a) - 1;
    $j = strlen($b) - 1;
    $str = '';
    $flag = 0;
    while ($i >= 0 || $j >= 0) {
        if ($i >= 0 && $j >= 0) {
            $add = $a[$i] + $b[$j] + $flag;
        } else {
            if ($i >= 0) {
                $add = $a[$i] + $flag;
            } else {
                $add = $b[$j] + $flag;
            }
        }
        if ($add == 2) {
            $flag = 1;
            $add = 0;
        } else {
            $flag = 0;
        }
        $str = $add . $str;
        $i --;
        $j --;
    }
    if ($flag == 1) {
        $str = 1 . $str;
    }
    return $str;
}
$a = '011';
$b = '1';
$str = addBinary($a, $b);
print $str;
发布了284 篇原创文章 · 获赞 32 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/less_cold/article/details/102964817