作者:disappearedgod
时间:2014-9-14
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 Time | Status | Run Time | Language |
---|---|---|---|
4 minutes ago | Accepted | 400 ms | java |