美文网首页
小米-基础算法-二进制字符串求和

小米-基础算法-二进制字符串求和

作者: luweicheng24 | 来源:发表于2019-01-28 11:23 被阅读0次

    给定两个二进制字符串,返回他们的和(用二进制表示)
    eg :
    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) {
            // write your code here
            StringBuilder result = new StringBuilder();
            char[] charA = a.toCharArray();
            char[] charB = b.toCharArray();
            int indexA = charA.length - 1;
            int indexB = charB.length - 1;
            int carry = 0;
            while (indexB >= 0 || indexA >= 0) {
                int sum = carry;
                if (indexA >= 0) sum += charA[indexA--] - '0';
                if (indexB >= 0) sum += charB[indexB--] - '0';
                int binary = sum % 2;
                result.append(binary);
                carry = sum/2;
            }
            if(carry>0){
                result.append(carry);
            }
            return result.reverse().toString();
        }
    }
    

    相关文章

      网友评论

          本文标题:小米-基础算法-二进制字符串求和

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