Skip to content

Commit 71fc222

Browse files
committed
update 0067 Solution for Java
1 parent f623034 commit 71fc222

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
class Solution {
22
public String addBinary(String a, String b) {
3-
int al = a.length(), bl = b.length(), di = Math.max(al, bl);
4-
char[] ac = a.toCharArray(), bc = b.toCharArray(), re = new char[di + 1];
5-
boolean jw = false;
6-
for (int i = 1; i <= di; i++) {
7-
int alc = al - i , blc = bl - i;
8-
char aChar = alc >= 0 ? ac[alc] : '0';
9-
char bChar = blc >= 0 ? bc[blc] : '0';
10-
if (aChar == bChar) {
11-
re[di + 1 - i] = jw ? '1' : '0';
12-
jw = aChar == '1';
13-
} else re[di + 1 - i] = jw ? '0' : '1';
3+
StringBuilder reverseAnswer = new StringBuilder();
4+
int maxLength = Math.max(a.length(), b.length());
5+
int carry = 0;
6+
7+
for (int i = 0;i < maxLength;i++) {
8+
carry += i < a.length() ? a.charAt(a.length() - 1 - i) - 48 : 0;
9+
carry += i < b.length() ? b.charAt(b.length() - 1 - i) - 48 : 0;
10+
11+
reverseAnswer.append(carry % 2);
12+
carry /= 2;
1413
}
15-
if (jw) re[0] = '1';
16-
StringBuilder builder = new StringBuilder();
17-
for (char c : re) if (c != 0) builder.append(c);
18-
return builder.toString();
14+
15+
if (carry == 1) {
16+
reverseAnswer.append(1);
17+
}
18+
return reverseAnswer.reverse().toString();
1919
}
2020
}

0 commit comments

Comments
 (0)