Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. /*
  2. Given two binary strings, return their sum (also a binary string).
  3.  
  4. For example,
  5. a = "11"
  6. b = "1"
  7. Return "100".
  8. */
  9.  
  10. /**
  11. * @param {string} a
  12. * @param {string} b
  13. * @return {string}
  14. */
  15. var addBinary = function(a, b) {
  16. var alen = a.length || 0,
  17. blen = b.length || 0,
  18. res = "",
  19. carry = 0;
  20. if(alen < blen){
  21. var tmp = a;
  22. a = b;
  23. b = tmp;
  24. alen = a.length || 0;
  25. blen = b.length || 0;
  26. }
  27.  
  28. for(var i = 1; i <= alen; i++){
  29. var _a = parseInt(a[alen - i]);
  30. var _b = parseInt(b[blen - i]) || 0;
  31. var add = _a + _b + carry;
  32. if(add === 3){
  33. res = "1" + res;
  34. carry = 1;
  35. }else if(add === 2){
  36. res = "0" + res;
  37. carry = 1;
  38. }else{
  39. res = add + res;
  40. carry = 0;
  41. }
  42. }
  43.  
  44. if(carry === 1){
  45. res = "1" + res;
  46. }
  47. return res;
  48. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement