Add Binary
Description
Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1
or 0
.
Example 1:
Input: a = "11", b = "1" Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"
Constraints:
- Each string consists only of
'0'
or'1'
characters. 1 <= a.length, b.length <= 10^4
- Each string is either
"0"
or doesn't contain any leading zero.
Solution(javascript)
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
const addBinary = function (a, b) {
const reverse = x => x.split('').reverse()
const { shorter, longer } = a.length > b.length
? { shorter: reverse(b), longer: reverse(a) }
: { shorter: reverse(a), longer: reverse(b) }
let reminder = 0
const digits = longer.map((num1, index) => {
let res = parseInt(num1, 10) + reminder
+ (parseInt(shorter[index], 10) ? parseInt(shorter[index], 10) : 0)
if (res >= 2) {
res -= 2
reminder = 1
} else {
reminder = 0
}
return res
})
if (reminder === 1) {
digits.push(reminder)
}
return digits.reverse().join('')
}