67. 二进制字符串相加 Add Binary

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

For example,
a = "11"
b = "1"
Return "100".

  1. public class Solution {
  2. public string AddBinary(string a, string b) {
  3. int length = Math.Max(a.Length, b.Length);
  4. a = a.PadLeft(length, '0');
  5. b = b.PadLeft(length, '0');
  6. string sum = "";
  7. int carry = 0;
  8. for (int i = length - 1; i >= 0; i--) {
  9. int s = (a[i]-48) + (b[i]-48);
  10. if (carry > 0) {
  11. s++;
  12. carry--;
  13. }
  14. if (s > 1) {
  15. carry++;
  16. }
  17. s = s % 2;
  18. sum = s.ToString() + sum;
  19. }
  20. if (carry > 0) {
  21. sum = "1" + sum;
  22. }
  23. return sum;
  24. }
  25. }







posted @ 2017-04-15 22:19  xiejunzhao  阅读(210)  评论(0)    收藏  举报