自己沒有仔細讀題目,如果是這些字符就一頓操作。
意味着不是這些字符,就不操作…以後要認真讀題。
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String s1 = in.next();
String s2 = in.next();
String str = s1 + s2;
char[] arr1 = new char[str.length() - str.length() / 2];
char[] arr2 = new char[str.length() / 2];
int count1 = 0;
int count2 = 0;
for (int i = 0; i < str.length(); i++) {
if (i % 2 == 0) {
arr1[count1] = str.charAt(i);
count1++;
} else {
arr2[count2] = str.charAt(i);
count2++;
}
}
Arrays.sort(arr1);
Arrays.sort(arr2);
count1 = 0;
count2 = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
if (i % 2 == 0) {
sb.append(arr1[count1]);
count1++;
} else {
sb.append(arr2[count2]);
count2++;
}
}
String s = sb.toString();
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int num = 0;
if (c >= '0' && c <= '9') {
num = c - 48;
} else if (c >= 'a' && c <= 'f') {
num = c - 87;
} else if (c >= 'A' && c <= 'F') {
num = c - 55;
}else {
stringBuffer.append(c);
continue;
}
String s3 = Integer.toBinaryString(num);
int zero = 4 - s3.length();
for (int j = 0; j < zero; j++) {
s3 = "0" + s3;
}
int res = 0;
for (int j = 0; j < 4; j++) {
char c1 = s3.charAt(j);
if (c1 == '1')
res += (int) Math.pow(2, j);
}
if (res >= 10) {
char cc = (char) (res + 55);
stringBuffer.append(cc);
} else {
stringBuffer.append(res);
}
}
System.out.println(stringBuffer.toString());
}
}
}