- 神秘代码
- 向上取整 int index = (tmpLen + 1) / 2;
- 想要删除String中的指定位置的字符不方便,可以将String转化成List
的结构,再使用remove - 同理,向指定位置插入字符 也可以使用add



import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Solution2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int strLen = sc.nextInt();int operation = sc.nextInt();sc.nextLine();String str = sc.nextLine();System.out.println(operateStr(str, operation));}private static String operateStr(String str, int operation) {if (operation == 1) {return encodeStr(str);} else {return decodeStr(str);}}private static String decodeStr(String str) {List<Character> output = new ArrayList<>();char[] ch = str.toCharArray();int strLen = str.length();for (int i = strLen - 1; i > -1; i--) {int index = (output.size() + 1 + 1) / 2 - 1;output.add(index, ch[i]);}StringBuilder sb = new StringBuilder();for (char tmpChar : output) {sb.append(tmpChar);}return sb.toString();}private static String encodeStr(String str) {int strLen = str.length();List<Character> input = new ArrayList<>();for (int i = 0; i < strLen; i++) {input.add(str.charAt(i));}StringBuilder sb = new StringBuilder();for (int i = 0; i < strLen; i++) {int tmpLen = input.size();int index = (tmpLen + 1) / 2 - 1;sb.append(input.remove(index));}return sb.toString();}}
文件同步



整除



