美文网首页
二进制求和

二进制求和

作者: 二进制的二哈 | 来源:发表于2019-12-31 16:52 被阅读0次

    题目来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/add-binary

    给定两个二进制字符串,返回他们的和(用二进制表示)。

    输入为非空字符串且只包含数字 1 和 0。

    示例 1:

    输入: a = "11", b = "1"
    输出: "100"
    

    示例 2:

    输入: a = "1010", b = "1011"
    输出: "10101"
    

    解法:

    class Solution {
        public String addBinary(String a, String b) {
            StringBuffer sb = new StringBuffer();
            int aIndex = a.length()-1;
            int bIndex = b.length()-1;
            //是否进位
            boolean flag = false;
            while(aIndex >= 0 || bIndex >= 0){
                char cA = '0';
                char cB = '0';
                if(aIndex >= 0)
                    cA = a.charAt(aIndex);
                if(bIndex >= 0)
                    cB = b.charAt(bIndex);
                if(cA == '1' && cB == '1'){
                    if(flag){
                        sb.append("1");
                    }else{
                        sb.append("0");
                    }
                    flag = true;
                }else if(cA == '0' && cB == '0'){
                    if(flag){
                        sb.append("1");
                    }else{
                        sb.append("0");
                    }
                    flag = false;
                }else{
                    if(flag){
                        sb.append("0");
                        flag = true;
                    }else{
                        sb.append("1");
                    }
                }
                aIndex--;
                bIndex--;
            }
            if(flag){
                sb.append("1");
            }
            return sb.reverse().toString();
        }
    }
    

    相关文章

      网友评论

          本文标题:二进制求和

          本文链接:https://www.haomeiwen.com/subject/vufioctx.html