Add Binary
Given two binary strings (strings containing only 1s and 0s) return their sum (also as a binary string).
Note: neither binary string will contain leading 0s unless the string itself is 0
Ex: Given the following binary strings...
"100" + "1", return "101"
"11" + "1", return "100"
"1" + "0", return "1"
fun addBinary(binaryOne: String, binaryTwo: String): String {
val sb = StringBuilder()
var i = binaryOne.length -1
var j = binaryTwo.length -1
var carry = 0
while(i >= 0 || j >= 0) {
var sum = carry
if(i >= 0) {
sum += binaryOne[i--] - '0'
}
if(j >=0) {
sum += binaryTwo[j--] - '0'
}
sb.insert(0,sum.mod(2))
carry = sum.div(2)
}
if(carry > 0){
sb.insert(0,1)
}
return sb.toString()
}