剑指 Offer II 002. 二进制加法

114 阅读1分钟

剑指 Offer II 002. 二进制加法

var addBinary = function (a, b) {
    var count = 0
    var sum = ''
    var i, j
    var temp
    for (i = a.length - 1, j = b.length - 1; i > -1 && j > -1; i--, j--) {
        temp = count + parseInt(a[i]) + parseInt(b[j])
        sum += temp > 1 ? String(temp - 2) : String(temp)
        count = temp > 1 ? 1 : 0
    }
    var k = i > j ? i : j
    var arr = i > j ? a : b
    while (k > -1) {
        temp = count + parseInt(arr[k])
        sum += temp > 1 ? String(temp - 2) : String(temp)
        count = temp > 1 ? 1 : 0
        k--
    }
    if (count === 1) { sum += '1' }
    return sum.split('').reverse().join('')
}