鱼C论坛

 找回密码
 立即注册
查看: 2241|回复: 0

[学习笔记] leetcode 67. Add Binary

[复制链接]
发表于 2019-8-31 10:46:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

  3. Example 1:

  4. Input: a = "11", b = "1"
  5. Output: "100"
  6. Example 2:

  7. Input: a = "1010", b = "1011"
  8. Output: "10101"
复制代码


借助BigInteger,虽然过了,效率贼差

  1. import java.math.BigInteger;
  2. class Solution {
  3.     public String addBinary(String a, String b) {
  4.         
  5.         BigInteger bi1, bi2, bi3;
  6.         bi1 = new BigInteger(a,2);
  7.         bi2 = new BigInteger(b,2);
  8.         bi3 = bi1.add(bi2);
  9.         
  10.         return bi3.toString(2);
  11.     }
  12.    
  13. }
复制代码


然后选择分步来解决!

  1. class Solution {
  2.     public String addBinary(String a, String b) {
  3.         
  4.         StringBuilder A = new StringBuilder(a);
  5.         
  6.         StringBuilder B = new StringBuilder(b);
  7.         
  8.         A.reverse();
  9.         B.reverse();
  10.         
  11.         while(A.length() > B.length()) B.append("0");
  12.         
  13.         while(A.length() < B.length()) A.append("0");
  14.         
  15.         int carry = 0, sum =0;
  16.         
  17.         StringBuilder re = new StringBuilder("");
  18.         
  19.         for(int i = 0; i< A.length(); i ++){
  20.             
  21.             sum = carry + (A.charAt(i) - '0') + (B.charAt(i) - '0');
  22.             
  23.             re.append(sum % 2);
  24.             
  25.             carry = sum /2;
  26.             
  27.         }
  28.         
  29.         while(carry > 0){
  30.             
  31.             re.append(carry % 2);
  32.             
  33.             carry = carry /2;
  34.         }
  35.         
  36.         re.reverse();
  37.         return re.toString();

  38.     }
  39.    
  40. }
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 18:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表