🌗 67. 二进制求和

吞佛童子2022年10月10日
  • algorithm
  • String
小于 1 分钟

🌗 67. 二进制求和

难度: 🌗

问题描述

img_7.png


解法

class Solution {
    public String addBinary(String a, String b) {
        // 思路:
        // 从低位开始计算
        int m = a.length();
        int n = b.length();
        int c = 0;
        int i = m - 1;
        int j = n - 1;
        StringBuilder sb = new StringBuilder();
        while(i >= 0 && j >= 0) {
            int x = a.charAt(i) - '0';
            int y = b.charAt(j) - '0';
            int cur = x + y + c;
            if(cur > 1) {
                cur = cur - 2;
                c = 1;
            } else {
                c = 0;
            }
            sb.append(cur);
            i --;
            j --;
        }
        while(i >= 0) {
            int x = a.charAt(i) - '0';
            int cur = x + c;
            if(cur > 1) {
                cur -= 2;
                c = 1;
            } else {
                c = 0;
            }
            sb.append(cur);
            i --;
        }
        while(j >= 0) {
            int y = b.charAt(j) - '0';
            int cur = y + c;
            if(cur > 1) {
                cur -= 2;
                c = 1;
            } else {
                c = 0;
            }
            sb.append(cur);
            j --;
        }
        if(c == 1) {
            sb.append(c);
        }
        return sb.reverse().toString();
    }
}

输出

img_6.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou