LeetCode算法题17:
题目描述
解题思路:这道题是一道关于二进制求和的问题,虽然思路比较简单,但是写起来却有点难,首先需要让输入的两个二进制字符串的长度保持相等,长度为两个的最大长度+1,做运算的时候对字符串的每位进行相加,若大于等于2则进一位,同时,若最后首位为0,则去掉首位
var addBinary = function(a, b) {
//获取两个字符串的最大长度+1
var maxLen=Math.max(a.length,b.length)+1;
//补全二进制字符串的长度为最大长度
while(a.length!=maxLen){a+='0';}
while(b.length!=maxLen){b+='0';}
var c=[];
for(var i=maxLen-1;i>=0;i--){
c[i]=c[i]?(c[i]+(a[i]-0)+(b[i]-0)):((a[i]-0)+(b[i]-0));
if(c[i]>1){
c[i-1]=c[i-1]?(c[i-1]+1):1;
c[i]=c[i]-2;
}
}
if(!c[0]){c.shift();}
return c.join('');
};