🤠 笨拙的牛蹄
import java.io.*;
import java.util.*;
public class Main
{
static int get(char[] a, int b)// 将 b 进制数组组成的数 转换为 10 进制的数
{
int res = 0;
for (int i = 0; i < a.length; i++)
{
res = res * b + a[i] - '0';
}
return res;
}
public static void main(String[] args) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s2 = in.readLine();
String s3 = in.readLine();
// 存放可能的结果,两个序列都可能的结果就是真的结果
HashSet<Integer> set = new HashSet<>();
char[] a = s2.toCharArray();
for (int i = 0; i < s2.length(); i++)
{
a[i] ^= 1;// 异或:转换第i位上的数字: 1->0; 0->1
int d = get(a, 2);
set.add(d);
a[i] ^= 1;// 记得还原,重复利用
}
char[] b = s3.toCharArray();
for (int i = 0; i < s3.length(); i++)
{
char t = b[i];
for (int j = 0; j < 3; j++)
{
if (t - '0' != j)
{
// 整型转成char: 加 '0' 再强转
b[i] = (char) (j + '0');
int k = get(b, 3);
// 第二次直接判重
if (set.contains(k))
{
System.out.println(k);
System.exit(0);
}
}
}
b[i] = t;//每个数位处理完之后复位
}
}
}