一:解题思路
Time:O(max(m,n)),Space:O(max(m,n))
二:完整代码示例 (C++版和Java版)
C++:
class Solution { public: string addBinary(string a, string b) { int i = a.length() - 1, j = b.length() - 1, carry = 0; string sb = ""; while (i >= 0 || j >= 0 || carry != 0) { int sum = carry; if (i >= 0) sum += a[i--] - ‘0‘; if (j >= 0) sum += b[j--] - ‘0‘; sb.append(to_string(sum%2)); carry = sum / 2; } reverse(sb.begin(),sb.end()); return sb; } };
Java:
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 || carry!=0) { int sum=carry; if(i>=0) sum+=a.charAt(i)-‘0‘; if(j>=0) sum+=b.charAt(j)-‘0‘; sb.append(sum%2); carry=sum/2; } return sb.reverse().toString(); } }
原文:https://www.cnblogs.com/repinkply/p/12634273.html