leetcode解题方案--067--Add Binary

来源:互联网 发布:碳谱数据库 编辑:程序博客网 时间:2024/06/05 00:44

题目

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

For example,
a = “11”
b = “1”
Return “100”.

分析

二进制相加。考虑进位

class Solution {      public static String addBinary(String a, String b) {        char[] aa = a.toCharArray();        char[] bb = b.toCharArray();        if (aa.length<bb.length) {            char[] tmp = aa;            aa = bb;            bb = tmp;        }        int differ = aa.length-bb.length;        int bindex = bb.length-1;        int add = 0;        while (bindex>=0) {            add = bb[bindex]+aa[bindex+differ] +add- 2*'0';            aa[bindex+differ] = (char)(add%2+'0');            add = add/2;            bindex--;        }        while (add>0 && bindex+differ>=0) {            if (aa[bindex+differ] == '1') {                aa[bindex+differ] = '0';                add = 1;            } else {                aa[bindex+differ] = '1';                add = 0;            }            bindex--;        }        if (add == 1) {            return "1"+new String(aa);        }        return new String(aa);    }}
原创粉丝点击