zoukankan      html  css  js  c++  java
  • LeetCode 67. Add Binary (二进制相加)

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

    For example,
    a = "11"
    b = "1"
    Return "100".


    题目标签:Math

      题目给了我们两个string a 和 b,让我们把这两个二进制 相加。

      首先把两个string 的长度得到,然后从右向左 取 两个string 的 digit。

      增设一个 carry = 0;

      每一轮把 digit a + digit b + carry = sum:

        新的 digit = sum % 2;

        新的 carry = sum / 2;

      注意当两个string 都走完时候,还要检查一下carry, 是否需要加上digit。

    Java Solution:

    Runtime beats 42.60% 

    完成日期:12/11/2017

    关键词:Math

    关键点:digit = sum % 2; carry = sum / 2

     1 class Solution 
     2 {
     3     public String addBinary(String a, String b) 
     4     {
     5         StringBuilder sb = new StringBuilder();
     6         int aLen = a.length() - 1;
     7         int bLen = b.length() - 1;
     8         int carry = 0;
     9         
    10         while(aLen >= 0 || bLen >= 0)
    11         {
    12             int sum = carry;
    13             
    14             if(bLen >= 0)
    15                 sum += b.charAt(bLen--) - '0';
    16             if(aLen >= 0)
    17                 sum += a.charAt(aLen--) - '0';
    18             
    19             sb.insert(0, sum % 2);
    20             carry = sum / 2;
    21         }
    22         
    23         // for last carry
    24         if(carry != 0)
    25             sb.insert(0, carry);
    26         
    27         return sb.toString();
    28     }
    29 }

    参考资料:https://discuss.leetcode.com/topic/13698/short-ac-solution-in-java-with-explanation

    LeetCode 题目列表 - LeetCode Questions List

    题目来源:https://leetcode.com/

  • 相关阅读:
    图解测试之稳定性-如何开始稳定性测试
    系统稳定性保障
    系统稳定性评测
    分布式架构的架构稳定性
    app测试--稳定性测试
    服务器稳定性测试方法汇总
    服务端稳定性测试
    发票问题
    android x86 固件定制
    Nim游戏博弈(收集完全版)
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/8027106.html
Copyright © 2011-2022 走看看