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