题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
package edu.shanxi.practise.hj30;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String str1 = line.split(" ")[0];
String str2 = line.split(" ")[1];
String str = str1 + str2;
List<Character> list_ji = new ArrayList<>();
List<Character> list_ou = new ArrayList<>();
for(int i = 0;i < str.length();i++) {
if(i % 2 == 0) list_ji.add(str.charAt(i));
else list_ou.add(str.charAt(i));
}
Collections.sort(list_ji);
Collections.sort(list_ou);
StringBuilder sb = new StringBuilder();
if(list_ji.size() > list_ou.size()) {
for(int i = 0;i < list_ou.size();i++) {
sb.append(list_ji.get(i));
sb.append(list_ou.get(i));
}
sb.append(list_ji.get(list_ji.size()-1));
}else if(list_ji.size() < list_ou.size()) {
for(int i = 0;i < list_ou.size();i++) {
sb.append(list_ji.get(i));
sb.append(list_ou.get(i));
}
sb.append(list_ou.get(list_ou.size()-1));
}else {
for(int i = 0;i < list_ou.size();i++) {
sb.append(list_ji.get(i));
sb.append(list_ou.get(i));
}
}
str = sb.toString();
sb.delete(0, sb.length());
for(int i = 0;i < str.length();i++) {
sb.append(zhuanhuan(str.charAt(i)));
}
System.out.println(sb);
sc.close();
}
private static char zhuanhuan(char charAt) {
int temp = charAt - '0';
String s = "";
if(temp>=0 && temp<10) {
switch (temp) {
case 0:
s = "0";
break;
case 1:
s = "1000";
break;
case 2:
s = "100";
break;
case 3:
s = "1100";
break;
case 4:
s = "0010";
break;
case 5:
s = "1010";
break;
case 6:
s = "0110";
break;
case 7:
s = "1110";
break;
case 8:
s = "1";
break;
case 9:
s = "1001";
break;
default:
break;
}
}else if(temp>=17 && temp<=22) {
switch (temp) {
case 17:
s = "101";
break;
case 18:
s = "1101";
break;
case 19:
s = "11";
break;
case 20:
s = "1011";
break;
case 21:
s = "111";
break;
case 22:
s = "1111";
break;
default:
break;
}
}else if(temp>=49 && temp<=54) {
switch (temp) {
case 49:
s = "101";
break;
case 50:
s = "1101";
break;
case 51:
s = "11";
break;
case 52:
s = "1011";
break;
case 53:
s = "111";
break;
case 54:
s = "1111";
break;
default:
break;
}
}else {
return charAt;
}
int temp1 = Integer.parseInt(s, 2);
if(temp1>=0 && temp1<10) {
return (char)('0'+temp1);
}else {
char c_temp = '0';
switch(temp1) {
case 10:
c_temp = 'A';
break;
case 11:
c_temp = 'B';
break;
case 12:
c_temp = 'C';
break;
case 13:
c_temp = 'D';
break;
case 14:
c_temp = 'E';
break;
case 15:
c_temp = 'F';
break;
}
return c_temp;
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String str1 = line.split(" ")[0];
String str2 = line.split(" ")[1];
String str = str1 + str2;
List<Character> list_ji = new ArrayList<>();
List<Character> list_ou = new ArrayList<>();
for(int i = 0;i < str.length();i++) {
if(i % 2 == 0) list_ji.add(str.charAt(i));
else list_ou.add(str.charAt(i));
}
Collections.sort(list_ji);
Collections.sort(list_ou);
StringBuilder sb = new StringBuilder();
if(list_ji.size() > list_ou.size()) {
for(int i = 0;i < list_ou.size();i++) {
sb.append(list_ji.get(i));
sb.append(list_ou.get(i));
}
sb.append(list_ji.get(list_ji.size()-1));
}else if(list_ji.size() < list_ou.size()) {
for(int i = 0;i < list_ou.size();i++) {
sb.append(list_ji.get(i));
sb.append(list_ou.get(i));
}
sb.append(list_ou.get(list_ou.size()-1));
}else {
for(int i = 0;i < list_ou.size();i++) {
sb.append(list_ji.get(i));
sb.append(list_ou.get(i));
}
}
str = sb.toString();
sb.delete(0, sb.length());
for(int i = 0;i < str.length();i++) {
sb.append(zhuanhuan(str.charAt(i)));
}
System.out.println(sb);
sc.close();
}
private static char zhuanhuan(char charAt) {
int temp = charAt - '0';
String s = "";
if(temp>=0 && temp<10) {
switch (temp) {
case 0:
s = "0";
break;
case 1:
s = "1000";
break;
case 2:
s = "100";
break;
case 3:
s = "1100";
break;
case 4:
s = "0010";
break;
case 5:
s = "1010";
break;
case 6:
s = "0110";
break;
case 7:
s = "1110";
break;
case 8:
s = "1";
break;
case 9:
s = "1001";
break;
default:
break;
}
}else if(temp>=17 && temp<=22) {
switch (temp) {
case 17:
s = "101";
break;
case 18:
s = "1101";
break;
case 19:
s = "11";
break;
case 20:
s = "1011";
break;
case 21:
s = "111";
break;
case 22:
s = "1111";
break;
default:
break;
}
}else if(temp>=49 && temp<=54) {
switch (temp) {
case 49:
s = "101";
break;
case 50:
s = "1101";
break;
case 51:
s = "11";
break;
case 52:
s = "1011";
break;
case 53:
s = "111";
break;
case 54:
s = "1111";
break;
default:
break;
}
}else {
return charAt;
}
int temp1 = Integer.parseInt(s, 2);
if(temp1>=0 && temp1<10) {
return (char)('0'+temp1);
}else {
char c_temp = '0';
switch(temp1) {
case 10:
c_temp = 'A';
break;
case 11:
c_temp = 'B';
break;
case 12:
c_temp = 'C';
break;
case 13:
c_temp = 'D';
break;
case 14:
c_temp = 'E';
break;
case 15:
c_temp = 'F';
break;
}
return c_temp;
}
}
}