美文网首页
LeetCode 第 67 题:二进制求和

LeetCode 第 67 题:二进制求和

作者: 放开那个BUG | 来源:发表于2023-03-06 23:40 被阅读0次

    1、前言

    题目描述

    2、思路

    做法跟十进制加法差不多

    3、代码

    class Solution {
        public String addBinary(String a, String b) {
            int m = a.length(), n = b.length();
            StringBuilder builder = new StringBuilder();
            int te = 0;
            int i = m - 1, j = n - 1;
            for(; i >= 0 && j >= 0; i--, j--){
                int aNum = a.charAt(i) - '0', bNum = b.charAt(j) - '0';
                int sum = aNum + bNum + te;
                int num = sum % 2;
                te = sum / 2;
                builder.insert(0, num);
            }
            while(i >= 0){
                int sum = a.charAt(i--) - '0' + te;
                te = sum / 2;
                builder.insert(0, sum % 2);
            }
    
            while(j >= 0){
                int sum = b.charAt(j--) - '0' + te;
                te = sum / 2;
                builder.insert(0, sum % 2);
            }
    
            while(te > 0){
                builder.insert(0, te % 2);
                te = te / 2;
            }
            return builder.toString();
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode 第 67 题:二进制求和

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