慎終如始,則無敗事

道學無止境,誠然心地行,超然於物外,絕待不歸真。

  • 博客访问: 5509312
  • 博文数量: 589
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-19 21:50
个人简介

高山仰止http://my.csdn.net/wzy0623王工的博客 参加炼数成金培训输入 Dataguru培训优惠码 DR50,报名立减50%固定学费。 http://edu.dataguru.cn/

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类

全部博文(589)

文章存档

2017年(61)

2016年(104)

2015年(144)

2014年(220)

2013年(60)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
二进制字符串相加 2017-08-08 10:27:31

分类: Java技术

转载自:
https://leetcode.com/problems/add-binary/discuss/

洋人写的好优雅啊


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

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


  1. public class Solution {
  2.     public String addBinary(String a, String b) {
  3.         if(a == null || a.isEmpty()) {
  4.             return b;
  5.         }
  6.         if(b == null || b.isEmpty()) {
  7.             return a;
  8.         }
  9.         char[] aArray = a.toCharArray();
  10.         char[] bArray = b.toCharArray();
  11.         StringBuilder stb = new StringBuilder();

  12.         int i = aArray.length - 1;
  13.         int j = bArray.length - 1;
  14.         int aByte;
  15.         int bByte;
  16.         int carry = 0;
  17.         int result;

  18.         while(i > -1 || j > -1 || carry == 1) {
  19.             aByte = (i > -1) ? Character.getNumericValue(aArray[i--]) : 0;
  20.             bByte = (j > -1) ? Character.getNumericValue(bArray[j--]) : 0;
  21.             result = aByte ^ bByte ^ carry;
  22.             carry = ((aByte + bByte + carry) >= 2) ? 1 : 0;
  23.             stb.append(result);
  24.         }
  25.         return stb.reverse().toString();
  26.     }
  27. }


阅读(35) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册