Leetcode(67)--バイナリ加算

730 ワード

2つのバイナリ文字列を指定し、それらの和(バイナリで表される)を返します.
空白以外の文字列として入力され、数字1および0のみが含まれます.
  : a = "11", b = "1"
  : "100"
  : a = "1010", b = "1011"
  : "10101"

pythonの内蔵関数,int()とbin()を用いて,直接答えを得ることができる.しかし、個人的にはこの方法をお勧めするわけではありません.簡単ですが、トレーニングの目的を果たしていません.もともとこの問題を記録したくない.
class Solution:
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        return bin(int(a,2)+int(b,2))[2:]

ここにも2つの大まかな考えがあります.
1、10進数加算に変換後、2進数に変換
2、進位の考え方をそのまま利用すると、間違いなくこの方法は簡単になります(min(len(a)、len(b)を計算して、それから小さい文字を限界として循環すれば、実現できるはずです)