Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
二进制数求和。
思路:利用StringBuilder 中Insert方法来构建。定义carry来记录进位,每循环一位定义sum来求该为结果。
public class Solution {
public string AddBinary(string a, string b) {
StringBuilder sb = new StringBuilder();
int i = a.Length - 1, j = b.Length - 1, carry = 0;
while (i >= 0 || j >= 0)
{
int sum = carry;
if (j >= 0) sum += b[j--] - '0';
if (i >= 0) sum += a[i--] - '0';
sb.Insert(0,sum % 2);
carry = sum / 2;
}
if (carry != 0) sb.Insert(0,carry);
return sb.ToString();
}
}