LeetCode算法題17:

題目描述
解題思路:這道題是一道關(guān)于二進(jìn)制求和的問題,雖然思路比較簡單,但是寫起來卻有點(diǎn)難,首先需要讓輸入的兩個(gè)二進(jìn)制字符串的長度保持相等,長度為兩個(gè)的最大長度+1,做運(yùn)算的時(shí)候?qū)ψ址拿课贿M(jìn)行相加,若大于等于2則進(jìn)一位,同時(shí),若最后首位為0,則去掉首位
var addBinary = function(a, b) {
//獲取兩個(gè)字符串的最大長度+1
var maxLen=Math.max(a.length,b.length)+1;
//補(bǔ)全二進(jìn)制字符串的長度為最大長度
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('');
};