您的位置:首页 > 其它

LeetCode-Add Binary

2014-09-14 18:08 323 查看
作者:disappearedgod
文章出处:/article/3730228.html
时间:2014-9-14

题目


Add Binary

Total Accepted: 16832 Total
Submissions: 64705My Submissions

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

a =
"11"


b =
"1"


Return
"100"
.

想法

最简单想法是按照十位数加法,注意的是从最后一位相加。
复杂的想法是用异或。

代码

public class Solution {
public String addBinary(String a, String b) {
int l_a = a.length();
int l_b = b.length();
int max = Math.max(l_a,l_b);
int min = Math.min(l_a,l_b);
if(l_a < l_b)
{
String tmp = a;
a = b;
b = tmp;
}
int carry = 0;
int ai= 0;
int bi = 0;
StringBuffer s = new StringBuffer();
for(int i = 0; i < max; i++){
ai = a.charAt(max-1 - i) - '0';
if(i < min)
bi = b.charAt(min-1 -i) - '0';
else
bi = 0;
ai = ai + bi + carry;
carry = ai / 2;
ai %= 2;

s.append(ai+"");

}
if(carry!=0)
s.append(carry);
s.reverse();
return s.toString();

}

}


结果



My Submissions for Add Binary

Submit TimeStatusRun TimeLanguage
4 minutes agoAccepted400 msjava

返回

LeetCode
Solution(持续更新,java>c++)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: