https://leetcode.com/problems/add-binary/
我尝试使用 String.parseInt(stringname,2) 将字符串转换为整数并添加数字,然后我尝试返回 Integer.toBinaryString(sum)。但是对于大字符串,我收到错误。
class Solution {
public String addBinary(String a, String b) {
int n1=Integer.parseInt(a,2);
int n2=Integer.parseInt(b,2);
int n=n1+n2;
return Integer.toBinaryString(n);
}
}
这是一个例子。
String addBinary(String a, String b) {
StringBuilder s = new StringBuilder();
char[] A = a.toCharArray();
char[] B = b.toCharArray();
boolean r = false;
int p, q, n = Math.max(p = A.length, q = B.length);
for (int i = 0; i < n; i++) {
char g = '0';
char h = '0';
if (i < p) g = A[p - 1 - i];
if (i < q) h = B[q - 1 - i];
if (g == '1' && h == '1')
if (r) s.insert(0, '1');
else {
s.insert(0, '0');
r = true;
}
else if (g == '0' && h == '0')
if (!r) s.insert(0, '0');
else {
s.insert(0, '1');
r = false;
}
else s.insert(0, r ? '0' : '1');
if (i + 1 == n && r) s.insert(0, '1');
}
return s.toString();
}
运行时间:1 ms,比 Add Binary 的 Java 在线提交的100.00%还要快。
内存使用量:41.1 MB,低于 Java 在线提交的 Add Binary 的 70.13%。