二进制求和
题目
给定两个二进制字符串,返回他们的和(用二进制表示)。
样例
a = 11
b = 1
返回 100题解
注意正确处理二进制进位即可。
public class Solution {
/**
* @param a a number
* @param b a number
* @return the result
*/
public String addBinary(String a, String b) {
int i = a.length() - 1;
int j = b.length() - 1;
int carries = 0;
StringBuilder result = new StringBuilder();
while (i >=0 || j >= 0)
{
int sum = (i >= 0 ? (int)(a.charAt(i) - '0'):0) + (j >= 0 ? (int)(b.charAt(j) - '0'):0) + carries;
result.insert(0,sum % 2);
carries = sum / 2;
i--;
j--;
}
if (carries == 1)
{
result.insert(0,1);
}
return result.toString();
}
}
Last Update 2016.9.16