题目描述:
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "1010", b = "1011"
输出: "10101"
示例 2:
输入: a = "10100000100100110110010000010101111011011001101110111111111101000000101111001110001111100001101"
b = "110101001011101110001111100110001010100001101011101010000011011011001011101111001100000011011110011"
输出: "110111101100010011000101110110100000011101000101011001000011011000001100011110011010010011000000000"
解题思路: 如果先把两个二进制字符串转换成数字,再求和,最后变成字符串的话,在本题中很容易出现溢出情况。
- 因为二进制字符串的加和是从右往左计算,所以先反转两个二进制字符串(使用StringBuffer提供的方法)。后面的步骤都基于反转后的字符串进行操作。
- 创