image.png

思路

相同位进行相加,同1相加为0,并且进一位
从末尾开始计算
image.png

题解

  1. function addBinary(a: string, b: string): string {
  2. let ansArr = [];
  3. let carry = 0;
  4. for (let i = a.length - 1, j = b.length - 1; i >= 0 || j >= 0; i-- , j--) {
  5. let sum = carry;
  6. sum += (i >= 0 ? parseInt(a.charAt(i)) : 0);
  7. sum += (j >= 0 ? parseInt(b.charAt(j)) : 0);
  8. ansArr.push(sum % 2);
  9. carry = Math.floor(sum / 2);
  10. }
  11. if (carry === 1) {
  12. ansArr.push(carry);
  13. }
  14. return ansArr.reverse().join('');
  15. };