Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
我的思路是:
1,先将两个string的长度设置为一样大小,小的进行左边补零。
2,利用split("")将string拆分为数组。
3,设置一个进位标识变量,从右往左一次相加。
4,将存放结果的数组利用join()转换为字符串。
代码:
1 /** 2 * @param {string} a 3 * @param {string} b 4 * @return {string} 5 */ 6 var addBinary = function(a, b) { 7 var sum=[]; 8 var maxLen=Math.max(a.length,b.length); 9 var count=0; 10 a=a.split(""); 11 b=b.split(""); 12 while(a.length<maxLen) 13 { 14 a.unshift(0); 15 } 16 while(b.length<maxLen) 17 { 18 b.unshift(0); 19 } 20 for(var i=maxLen-1;i>=0;i--) 21 { 22 sum[i]=Number(a[i])+Number(b[i])+count; 23 if(sum[i]>=2) 24 { 25 sum[i]=sum[i]-2; 26 count=1; 27 } 28 else 29 { 30 count=0; 31 } 32 } 33 if(count==1) 34 { 35 sum.unshift(1); 36 } 37 sum=sum.join(""); 38 return sum; 39 };