LintCode Add Binary 二进制求和

来源:互联网 发布:flash软件官方下载 编辑:程序博客网 时间:2024/04/30 07:16

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

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

样例

a = 11

b = 1

返回 100

public class Solution {    /**     * @param a a number     * @param b a number     * @return the result     */    public String addBinary(String a, String b) {        if (a.length() < b.length()) {            String temp = a;            a = b;            b = temp;        }        int alen = a.length(), blen = b.length();        StringBuilder sb = new StringBuilder("");        int carry = 0;        int i = 0;        for (; i < blen; i++) {            int sum = carry + a.charAt(alen - 1 - i) + b.charAt(blen -1 - i) - 2 * '0';            char cur = (char)('0' + sum % 2);            carry = sum / 2;            sb.insert(0, cur);        }        for (; i < alen; i++) {            int sum = carry + a.charAt(alen - 1 - i) - '0';            char cur = (char)('0' + sum % 2);            carry = sum / 2;            sb.insert(0, cur);        }        if (carry != 0) { sb.insert(0, (char)('0' + carry)); }        return sb.toString();    }}


0 0
原创粉丝点击