题目描述

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。   
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。

方法1

描述

考虑一个最朴素的方法:先将 a 和 b 转化成十进制数,求和后再转化为二进制数。

代码

package easy.二进制求和67;

class Solution {
    /**
     * 最快的一种
     * @param a
     * @param b
     * @return
     */
    public String addBinary(String a, String b) {
        return Integer.toBinaryString(
                Integer.parseInt(a, 2) + Integer.parseInt(b, 2)
        );
    }
}

方法2 模拟

描述

先循环字符串最短的进行累加,然后多余的与进位累加即可

代码

package easy.二进制求和67;

class Solution {
    /**
     * 最快的一种
     * @param a
     * @param b
     * @return
     */
    public String addBinary(String a, String b) {
        return Integer.toBinaryString(
                Integer.parseInt(a, 2) + Integer.parseInt(b, 2)
        );
    }
}