Add Binary

题目

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".

答案

public String addBinary(String a, String b) {
        StringBuilder sb = new StringBuilder();
        int a_len = a.length(), b_len = b.length();

        int i = a_len - 1, j = b_len - 1;
        char ca, cb, carry = '0';
        while (i >= 0 || j >= 0) {
            ca = (i >= 0) ? a.charAt(i) : '0';
            cb = (j >= 0) ? b.charAt(j) : '0';
            if (ca == '0' && cb == '0') {
                sb.insert(0, carry);
                carry = '0';
            } else if ((ca == '0' && cb == '1') || (ca == '1' && cb == '0')) {
                sb.insert(0, (carry == '0') ? '1' : '0');
                carry = (carry == '1') ? '1' : '0';
            } else if (ca == '1' && cb == '1') {
                sb.insert(0, (carry == '0') ? '0' : '1');
                carry = '1';
            }
            i--;
            j--;
        }
        if(carry == '1') sb.insert(0, '1');
        return sb.toString();
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,973评论 0 33
  • 一、原题目内容 Given two binary strings, return their sum (also ...
    小犇手K线研究员阅读 603评论 0 0
  • 题目 Given two binary strings, return their sum (also a bin...
    persistent100阅读 207评论 0 0
  • 活了似乎很久的样子,久到忘记热血是什么滋味。似乎很久了,周围的人还是叫我小孩,小朋友,小妹妹。其实,明明就很大...
    素娘阅读 373评论 0 1
  • ‘’和别人混在一起时,我向往孤独。孤独时,我又向往看到我的同类。但解除孤独毕竟只能靠相爱相知的人,其余的人扰乱了孤...
    阿鱼鱼鱼阅读 261评论 0 1

友情链接更多精彩内容