题目
给定二进制字符串 a 和 b, 返回 他们相加后的二进制字符串.
示例 1:
输入: a = "11", b = "1"
输出: "100"
示例 2:
输入: a = "1010", b = "1011"
输出: "10101"
思路
- 正向遍历i,倒着取值。
 - 有记录进位
 - 逆序输出字符串
 
function addBinary(a: string, b: string): string {
    const numbers = [];
    const len1 = a.length;
    const len2 = b.length;
    const max = Math.max(len1, len2);
    let pre = 0;
    for(let i = 0; i < max; i++) {
        const val1 = i < len1 ? +a[len1 - 1 - i] : 0;
        const val2 = i < len2 ? +b[len2 - 1 - i] : 0;
        const sum = val1 + val2 + pre;
        numbers.push(sum % 2);
        
        pre = sum > 1 ? 1 : 0;
    }
    if(pre) numbers.push(pre);
    return numbers.reverse().join('');
};