首页 > 代码库 > Add Binary

Add Binary

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         char num1[] = a.toCharArray(); 4         char num2[] = b.toCharArray(); 5         int result[] = new int[Math.max(a.length(), b.length()) + 1];//保存结果 6         int i = num1.length - 1; 7         int j = num2.length - 1; 8         int k = result.length - 1; 9         while(i >= 0 && j >= 0){10             if(num1[i] == ‘1‘ && num2[j] == ‘1‘)11                 result[k--] = 2;12             else if(num1[i] == ‘0‘ && num2[j] == ‘0‘)13                 result[k--] = 0;14             else15                 result[k--] = 1;16             i--;17             j--;18         }//至少有一个计算完成19         while(i >= 0){20             result[k--] = num1[i--] - ‘0‘;21         }22         while(j >= 0)23             result[k--] = num2[j--] - ‘0‘;24         k = result.length - 1;25         while(k > 0){26             if(result[k] / 2 == 1)27             {28                 result[k - 1] += 1;29                 result[k] %= 2;30             }31             k--;32         }33         String ret = "";34         if(result[0] != 0){35             for(i = 0; i < result.length; i++)36                 ret += String .valueOf(result[i]);37         }38         else39         {40             for(i = 1; i < result.length; i++)41                 ret += String .valueOf(result[i]);42         }43         return ret;44     }45 }

 

Add Binary