Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
思路
String的思路通常都是从后往前处理, 这道题重点是要考虑两个字符串长度不同的情况和char转换为number
复杂度
时间O(max(m,n)),空间O(max(m,n))
代码
public class Solution {
public String addBinary(String a, String b) {
if (a == null || a.length() == 0) {
return b;
}
if (b == null || b.length() == 0) {
return a;
}
StringBuilder sb = new StringBuilder();
int next = 0;
int sum = 0;
int i = a.length() -1;
int j = b.length() -1;
while (i >= 0 && j >= 0) {
int inta = a.charAt(i) - '0';
int intb = b.charAt(j) - '0';
sum = inta + intb + next;
next = sum/2;
sb.append(sum%2);
i--;
j--;
}
while (i >= 0) {
sum = a.charAt(i) - '0' + next;
next = sum/2;
sb.append(sum%2);
i--;
}
while (j >= 0) {
sum = b.charAt(j) - '0' + next;
next = sum/2;
sb.append(sum%2);
j--;
}
if (next > 0) {
sb.append(next);
}
return sb.reverse().toString();
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。