問題
Given two binary strings a and b, return their sum as a binary string.
Example 1:
Input: a = "11", b = "1"
Output: "100"
Example 2:
Input: a = "1010", b = "1011"
Output: "10101"
Constraints:
1 <= a.length, b.length <= 10^4
a and b consist only of '0' or '1' characters.
Each string does not contain leading zeros except for the zero itself.
私の回答
def add_binary(a, b)
(a.to_i(2) + b.to_i(2)).to_s(2)
end
無事Accepted!!
どう考えたか書いていきます。
といっても今回そのままなのですが。。。
まず問題としては二進数の足し算ですが、普通にto_iして足し算してしまうと二進数と十進数が混ざった計算になってしまうので、
a = "1010"
a.to_i(2) #=> 10
十進数に変換します。
十進数として計算した後、二進数に再度変換します。
a.to_i(2) + b.to_i(2) #=> 21
21.to_s(2) #=> "10101"
無事終了です。
本当は最初、integerにした後桁ごとに計算しなければいけないのかな?と思いましたが、もっとシンプルに書けました。