/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
//http://w...content-available-to-author-only...p.com/question?id=5727644228255744
char[] a, b;
if(s1.length()>s2.length()){
a = s1.toCharArray();
b = s2.toCharArray();
}else {
b = s1.toCharArray();
a = s2.toCharArray();
}
int length = s1.length() > s2.length() ? s1.length() + 1 : s2.length() + 1;
char[] sum = new char[length];
char c = '0';
int i = s1.length() - 1, j = s2.length() - 1; //for looks code easy
while( i>=0 ) {
if(a[i] == '0' && c == '0') {
if(j<0) sum[i+1] = '0';
else
sum[i+1] = b[j];
}else if(a[i] == '0' && c == '1') {
if(j<0) {
sum[i+1] = '1';
c = '0';
}else if(b[j] == '0') {
sum[i+1] = '1';
c = '0';
}else{
sum[i+1] = '0';
c = '1';
}
}else if(a[i] == '1' && c == '1') {
if(j<0) {
sum[i+1] = '0';
c = '1';
}else if(b[j] == '0') {
sum[i+1] = '0';
c = '1';
}else{
sum[i+1] = '1';
c = '1';
}
}else if(a[i] == '1' && c == '0') {
if(j<0) {
sum[i+1] = '1';
//c == '0';
} else if(b[j] == '0') {
sum[i+1] = '1';
}else {
sum[i+1] = '0';
c='1';
}
}
i--;
j--;
}
if(c == '1') sum[0] = '1';
// System.out.println(sum);
return new String(sum
); // or return sum? }
public static void main
(String[] args
) {
System.
out.
println(sumBinary
("",
"")); System.
out.
println(sumBinary
("0",
"0")); System.
out.
println(sumBinary
("1",
"1")); System.
out.
println(sumBinary
("0111101",
"0001101")); System.
out.
println(sumBinary
("1111",
"0000")); System.
out.
println(sumBinary
("1010",
"0101")); System.
out.
println(sumBinary
("1111",
"1111"));
System.
out.
println(sumBinary
("1111",
""));
System.
out.
println(sumBinary
("1111",
"1"));
System.
out.
println(sumBinary
("1111",
"00"));
System.
out.
println(sumBinary
("1111111111111111",
"111"));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJCgkvL2h0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5wLmNvbS9xdWVzdGlvbj9pZD01NzI3NjQ0MjI4MjU1NzQ0CgoKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHN1bUJpbmFyeShTdHJpbmcgczEsIFN0cmluZyBzMikgewoJCgljaGFyW10gYSwgYjsKCglpZihzMS5sZW5ndGgoKT5zMi5sZW5ndGgoKSl7CgkgICAgYSA9IHMxLnRvQ2hhckFycmF5KCk7CgkgICAgYiA9IHMyLnRvQ2hhckFycmF5KCk7Cgl9ZWxzZSB7CgkgICAgYiA9IHMxLnRvQ2hhckFycmF5KCk7CgkgICAgYSA9IHMyLnRvQ2hhckFycmF5KCk7Cgl9CgkKCWludCBsZW5ndGggPSBzMS5sZW5ndGgoKSA+IHMyLmxlbmd0aCgpID8gczEubGVuZ3RoKCkgKyAxIDogczIubGVuZ3RoKCkgKyAxOwoJY2hhcltdIHN1bSA9IG5ldyBjaGFyW2xlbmd0aF07CgkKCWNoYXIgYyA9ICcwJzsKCglpbnQgaSA9IHMxLmxlbmd0aCgpIC0gMSwgaiA9IHMyLmxlbmd0aCgpIC0gMTsgLy9mb3IgbG9va3MgY29kZSBlYXN5CgoJCgl3aGlsZSggaT49MCApIHsKCSAgICBpZihhW2ldID09ICcwJyAmJiBjID09ICcwJykgewoJCWlmKGo8MCkgc3VtW2krMV0gPSAnMCc7CgkJZWxzZQoJCSAgICBzdW1baSsxXSA9IGJbal07CgkJCgkgICAgfWVsc2UgaWYoYVtpXSA9PSAnMCcgJiYgYyA9PSAnMScpIHsKCQlpZihqPDApIHsKCQkgICAgc3VtW2krMV0gPSAnMSc7CgkJICAgIGMgPSAnMCc7CgkJfWVsc2UgaWYoYltqXSA9PSAnMCcpIHsKCQkgICAgc3VtW2krMV0gPSAnMSc7CgkJICAgIGMgPSAnMCc7CgkJfWVsc2V7CgkJICAgIHN1bVtpKzFdID0gJzAnOwoJCSAgICBjID0gJzEnOwoJCX0KCQkKCSAgICB9ZWxzZSBpZihhW2ldID09ICcxJyAmJiBjID09ICcxJykgewoJCWlmKGo8MCkgewoJCSAgICBzdW1baSsxXSA9ICcwJzsKCQkgICAgYyA9ICcxJzsKCQl9ZWxzZSBpZihiW2pdID09ICcwJykgewoJCSAgICBzdW1baSsxXSA9ICcwJzsKCQkgICAgYyA9ICcxJzsKCQl9ZWxzZXsKCQkgICAgc3VtW2krMV0gPSAnMSc7CgkJICAgIGMgPSAnMSc7CgkJfQoJCQoJCQoJICAgIH1lbHNlIGlmKGFbaV0gPT0gJzEnICYmIGMgPT0gJzAnKSB7CgkJaWYoajwwKSB7CgkJICAgIHN1bVtpKzFdID0gJzEnOwoJCSAgICAvL2MgPT0gJzAnOwoJCX0gZWxzZSBpZihiW2pdID09ICcwJykgewoJCSAgICBzdW1baSsxXSA9ICcxJzsKCQl9ZWxzZSB7CgkJICAgIHN1bVtpKzFdID0gJzAnOwoJCSAgICBjPScxJzsKCQl9CgkJCgkgICAgfQoKCSAgICAKCSAgICAKCgkgICAgaS0tOwoJICAgIGotLTsKCX0KCQoJaWYoYyA9PSAnMScpIHN1bVswXSA9ICcxJzsKCS8vCVN5c3RlbS5vdXQucHJpbnRsbihzdW0pOwoKCXJldHVybiBuZXcgU3RyaW5nKHN1bSk7IC8vIG9yIHJldHVybiBzdW0/CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN1bUJpbmFyeSgiIiwgIiIpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3VtQmluYXJ5KCIwIiwgIjAiKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN1bUJpbmFyeSgiMSIsICIxIikpOwkKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3VtQmluYXJ5KCIwMTExMTAxIiwgIjAwMDExMDEiKSk7CglTeXN0ZW0ub3V0LnByaW50bG4oc3VtQmluYXJ5KCIxMTExIiwgIjAwMDAiKSk7CglTeXN0ZW0ub3V0LnByaW50bG4oc3VtQmluYXJ5KCIxMDEwIiwgIjAxMDEiKSk7CglTeXN0ZW0ub3V0LnByaW50bG4oc3VtQmluYXJ5KCIxMTExIiwgIjExMTEiKSk7CgoJU3lzdGVtLm91dC5wcmludGxuKHN1bUJpbmFyeSgiMTExMSIsICIiKSk7CgkKCVN5c3RlbS5vdXQucHJpbnRsbihzdW1CaW5hcnkoIjExMTEiLCAiMSIpKTsKCQoJU3lzdGVtLm91dC5wcmludGxuKHN1bUJpbmFyeSgiMTExMSIsICIwMCIpKTsKCQoJU3lzdGVtLm91dC5wcmludGxuKHN1bUJpbmFyeSgiMTExMTExMTExMTExMTExMSIsICIxMTEiKSk7CgoJCiAgICB9CiAgICAKCgkKCQoJCgkKCQoJCn0=