こちらは「Add Binary」のPythonによる解答例となっております。この問題は、2つの二進数を足し合わせ、その和を二進数で返す問題です。
問題
2つの二進数 a と b が与えられたとき、それらを足し合わせた結果を二進数で返します。
a
とb
の長さは、1以上 10^4以下です。a
とb
は、二進数形式で与えられます。- 答えは、二進数形式で返します。
解法
この問題は、Pythonの組み込み関数を用いた1つのアプローチがあります。Pythonの bin 関数は、整数を二進数に変換することができます。この問題では、まず a と b を整数に変換し、足し合わせます。そして、 bin 関数を用いて、二進数に変換した結果を返します。
Pythonコード
以下のコードが、「二進数の足し算」を解くためのPythonプログラムとなります。
### Function ##################################################################
def solve(num=0):
solver = Solution().addBinary
if 1 <= num <= Input().input: id_LIST = [num]
else: id_LIST = [id+1 for id in range(Input().input)]
for id in id_LIST:
data = Input(id)
ans = solver(data.a, data.b)
result = "OK" if ans==data.ans else "NG"
print(f"[{str(id).zfill(3)}] {result}")
### Class #####################################################################
class Solution(object):
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
return bin(int(a,2)+int(b,2))[2:]
#==============================================================================
class Input:
def __init__(self, num=0):
if num == 1:
self.a = "11"
self.b = "1"
self.ans = "100"
elif num == 2:
self.a = "1010"
self.b = "1011"
self.ans = "10101"
else:
self.input = 2
### Main ######################################################################
if __name__ == "__main__":
solve()
###############################################################################