67. Add Binary java solutions

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         
 4         if(a.length() > b.length()){//将字符串长的作为b,方便后面字符串长的处理
 5             String tmp = b;
 6             b = a;
 7             a = tmp;
 8         }
 9         int alen = a.length()-1, blen = b.length()-1;
10         String ans = "";
11         int high = 0, tmp = 0;
12         while(alen >= 0){
13             tmp = (int)(a.charAt(alen--)-'0') + (int)(b.charAt(blen--)-'0') + high;// 需要做下int的强制类型转换,不然internal error
14             ans = "" + tmp%2 + ans;
15             high = tmp/2;
16         }
17         while(blen >= 0){
18             tmp = (int)(b.charAt(blen--)-'0') + high;
19             ans = "" + tmp%2 + ans;
20             high = tmp/2;
21         }
22         if(high == 1) ans ="" + 1 + ans;
23         return ans;
24     }
25 }

 

转载于:https://www.cnblogs.com/guoguolan/p/5629975.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值