MCPcopy Create free account
hub / github.com/Blankj/awesome-java-leetcode / Solution

Class Solution

src/com/blankj/easy/_0067/Solution.java:11–53  ·  view source on GitHub ↗

author: Blankj blog : http://blankj.com time : 2017/05/07 desc :

Source from the content-addressed store, hash-verified

9 * </pre>
10 */
11public class Solution {
12 public String addBinary(String a, String b) {
13 StringBuilder sb = new StringBuilder();
14 int carry = 0, p1 = a.length() - 1, p2 = b.length() - 1;
15 while (p1 >= 0 && p2 >= 0) {
16 carry += a.charAt(p1--) - '0';
17 carry += b.charAt(p2--) - '0';
18 sb.insert(0, (char) (carry % 2 + '0'));
19 carry >>= 1;
20 }
21 while (p1 >= 0) {
22 carry += a.charAt(p1--) - '0';
23 sb.insert(0, (char) (carry % 2 + '0'));
24 carry >>= 1;
25 }
26 while (p2 >= 0) {
27 carry += b.charAt(p2--) - '0';
28 sb.insert(0, (char) (carry % 2 + '0'));
29 carry >>= 1;
30 }
31 if (carry == 1) {
32 sb.insert(0, '1');
33 }
34 return sb.toString();
35 }
36
37// public String addBinary(String a, String b) {
38// StringBuilder sb = new StringBuilder();
39// int carry = 0, p1 = a.length() - 1, p2 = b.length() - 1;
40// while (p1 >= 0 || p2 >= 0 || carry == 1) {
41// carry += p1 >= 0 ? a.charAt(p1--) - '0' : 0;
42// carry += p2 >= 0 ? b.charAt(p2--) - '0' : 0;
43// sb.insert(0, (char) (carry % 2 + '0'));
44// carry >>= 1;
45// }
46// return sb.print();
47// }
48
49 public static void main(String[] args) {
50 Solution solution = new Solution();
51 System.out.println(solution.addBinary("11", "1"));
52 }
53}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected