[leetcode] 67. 二进制求和

Posted ACBingo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode] 67. 二进制求和相关的知识,希望对你有一定的参考价值。

67. 二进制求和

模拟加法运算

class Solution {
    public String addBinary(String a, String b) {
        int m = a.length();
        int n = b.length();
        a = new StringBuffer(a).reverse().toString();
        b = new StringBuffer(b).reverse().toString();

        int[] ans = new int[m + n];
        int i = 0;
        for (i = 0; i < a.length() && i < b.length(); i++) {
            ans[i] = a.charAt(i) - ‘0‘ + b.charAt(i) - ‘0‘;
        }
        if (i == a.length() && i < b.length()) {
            for (int j = i; j < b.length(); j++) {
                ans[j] = b.charAt(j) - ‘0‘;
            }
        }
        if (i == b.length() && i < a.length()) {
            for (int j = i; j < a.length(); j++) {
                ans[j] = a.charAt(j) - ‘0‘;
            }
        }

        // 处理进位
        int k = 0;
        while (k < m + n - 1) {
            ans[k + 1] += ans[k] / 2;
            ans[k] %= 2;
            k++;
        }
        int top = m + n - 1;
        while (ans[top] == 0 && top > 0) {
            top--;
        }
        String s = "";
        for (int j = top; j >= 0; j--) {
            s += ans[j];
        }
        return s;
    }
}

以上是关于[leetcode] 67. 二进制求和的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 67. 二进制求和 | Python

[leetcode] 67. 二进制求和

leetcode-67.二进制求和

LeetCode67. 二进制求和

leetcode算法67.二进制求和

Python描述 LeetCode 67. 二进制求和