1 /**
2 * @param {string} a
3 * @param {string} b
4 * @return {string}
5 */
6 var addBinary = function (a, b) {
7 let shortList = []
8 let longList = []
9 if (b.length > a.length) {
10 shortList = a.split('').reverse();
11 longList = b.split('').reverse();
12 } else {
13 longList = a.split('').reverse();
14 shortList = b.split('').reverse();
15 }
16 longList.push('0');
17 for (let i = 0; i < b.length; i++) {
18 if (shortList[i] === '1') {
19 let j = i;
20 for (; j < longList.length; j++) {
21 if (longList[j] === '0') {
22 longList[j] = '1';
23 break;
24 }
25 longList[j] = '0';
26 }
27 }
28 }
29 const ans = longList.reverse().join('')
30 return ans.slice(0, 1) === '1' ? ans : ans.slice(1);
31 };