题目描述
题目链接:67. Add Binary
Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1
or 0
.
例子
例子 1
Input: a = “11”, b = “1”
Output: “100”
例子 2
Input: a = “1010”, b = “1011”
Output: “10101”
Explanation:
Constraints
- Each string consists only of
'0'
or'1'
characters. 1 <= a.length, b.length <= 10^4
- Each string is either
"0"
or doesn’t contain any leading zero.
解题思路
解题思路比较简单,分别用指针变量指向两个字符串的末端,从后往前遍历。并且用一个布尔值表示当前是否有进位。遍历每一位时用一个整型变量sum
记录和(a[ptr1] + b[ptr2] + flag
),当 sum >= 2
时表示当前有进位,记录在 flag
中并将 sum
减2。遍历结束后检查 flag
是否还留有进位更新至结果即可,代码如下:
1 |
|
- 时间复杂度: O(n)
- 空间复杂度: O(n)
GitHub 代码同步地址: 67.AddBinary.cpp
其他题目:
GitHub: Leetcode-C++-Solution
博客: Leetcode-Solutions