LeetCode Add Binary (JavaScript)

来源:互联网 发布:mac book 手写便签 编辑:程序博客网 时间:2024/06/07 06:06

题目:

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".

思路:

反序遍历字符串,并判断是否有进位。

代码如下

var addBinary = function(a, b) {    var alen = a.length;    var blen = b.length;    if(alen === 0){        return b;    }else if(blen === 0){        return a;    }    //将a、b变成等长的字符串    if(alen>blen){        for(var i=0;i<alen-blen;i++){            b = "0"+b;         }        blen = b.length;    }else if(alen<blen){        for(i=0;i<blen-alen;i++){            a = "0" + a;        }        alen = a.length;    }    var c;    var carry = 0; //进位判断    var result = [];    var len = alen -1;    while(len > -1){        c = parseInt(a.charAt(len)) + parseInt(b.charAt(len)) + carry;        carry = parseInt(c/2);        if(c%2){            result.unshift("1");        }else{            result.unshift("0");        }        len--;    }    if(carry == 1){        result.unshift("1");    }    result = result.join(""); //将数组转换成字符串    return result;};


0 0