您的位置:首页 > 其它

LeetCode - Add Binary

2015-03-30 04:17 337 查看
https://leetcode.com/problems/add-binary/

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

For example,

a =
"11"


b =
"1"


Return
"100"
.
这道题就跟所有加法题一样,只要注意进位,和一个数加完后,处理另一个数剩余的位就行。
代码如下:

public String addBinary(String a, String b) {
char[] sa = a.toCharArray();
char[] sb = b.toCharArray();

int i=sa.length-1;
int j = sb.length-1;
char[] longer = i>=j? sa:sb;
int left = i>=j? i:j;
int carry = 0;
while(i>=0 && j>=0){
int val = (sa[i]-'0') + (sb[j]-'0') + carry;
longer[left] = (char)(val%2 + '0');
carry = val/2;
i--;
j--;
left--;
}

while(left>=0){
int val = (longer[left]-'0') + carry;
longer[left] = (char)(val%2 + '0');
carry = val/2;
left--;
}
String rst = new String(longer);
if(carry>0) rst = "1" + rst;
return rst;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: