Add Binary

题目描述

Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.

题目解答

解题思路

二进制加法都是从低位开始加(也就是字符串的高位),所以要从高位开始加

‘1’ - ‘0’ = 1

代码实现

/**
 * 从低位开始加   也就是字符串的高位
 */
public class Solution {
    public String addBinary(String a, String b) {
         if(a == null || b == null)
            return "";

        StringBuilder ret = new StringBuilder("");
        int i = a.length()-1, j = b.length()-1;
        int carry = 0;
        while(i >= 0 || j >= 0){
            int sum = carry;
            if(i >= 0)
                sum += (a.charAt(i--)-'0');
            if(j >= 0)
                sum += (b.charAt(j--)-'0');

            carry = sum / 2;
            //int + char --> int 注意
            char temp = (char)(sum%2 + '0');
            ret.insert(0, temp);
        }
        if(carry == 1)
            ret.insert(0, '1');
        return ret.toString();
    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangxishidayuan/article/details/49933935
文章标签: 二进制
个人分类: 算法和刷题
上一篇Longest Valid Parentheses
下一篇Valid Anagram --Nice
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭