zoukankan      html  css  js  c++  java
  • 0067. Add Binary (E)

    Add Binary (E)

    题目

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

    The input strings are both non-empty and contains only characters 1 or 0.

    Example 1:

    Input: a = "11", b = "1"
    Output: "100"
    

    Example 2:

    Input: a = "1010", b = "1011"
    Output: "10101"
    

    题意

    实现以字符串表示的二进制加法。

    思路

    直接从后往前按位相加即可。


    代码实现

    Java

    class Solution {
        public String addBinary(String a, String b) {
            int i = a.length() - 1, j = b.length() - 1;
            int carry = 0;
            StringBuilder bits = new StringBuilder();
            
            while (i >= 0 || j >= 0 || carry == 1) {
                int sum = carry;
                if (i >= 0) {
                    sum += a.charAt(i--) - '0';
                }
                if (j >= 0) {
                    sum += b.charAt(j--) - '0';
                }
                bits.append(sum % 2);
                carry = sum / 2;
            }
    
            return bits.reverse().toString();
        }
    }
    

    JavaScript

    /**
     * @param {string} a
     * @param {string} b
     * @return {string}
     */
    var addBinary = function (a, b) {
      let i = 0
      let carry = 0
      let ans = []
      while (i < a.length || i < b.length) {
        let sum = carry
        sum += i < a.length ? +a[a.length - 1 - i] : 0
        sum += i < b.length ? +b[b.length - 1 - i] : 0
        carry = Math.trunc(sum / 2)
        sum %= 2
        ans.unshift(sum)
        i++
      }
      if (carry) {
        ans.unshift(carry)
      }
      return ans.join('')
    }
    
  • 相关阅读:
    使用eclipse新建一个SWT工程
    C++类的构造函数
    D3D编程的常见报错及解决
    D3D窗口的初始化
    C++联合体的内存使用
    QT程序如何编译
    Restart
    HTML
    信号、槽位及布局
    QT对话框程序
  • 原文地址:https://www.cnblogs.com/mapoos/p/13352977.html
Copyright © 2011-2022 走看看