67. Add Binary
这道题是一道简单题, 真的很简单.
首先来看题目
Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters1
or0
.
意思就是, 给两个二进制的数, 返回他们相加的和.
例子:
Input a = "11", b = "1"
Output: "100"
思路
既然做加法, 我们就从最右边的一位开始加. 二进制的加法很简单, 每一位只有两种可能, 要么是0
, 要么是1
. 同样的, 进位也只有这两种可能. 有了这个共识, 思路就出来了.
从最右开始, 两个数相加, 取跟2
取模运算的结果作为答案, 如果两数相加的和大于1
, 那么进位取1
. 然后同时往左挪一位.
Code
1 | def addBianry(a, b): |
需要注意的地方是, 在返回结果之前, 需要看一下进位是否等于0
. 如果不等于0
, 需要最前面加一个1
.
这道题的时间复杂度是 $O(n)$
EOF