import java.util.*; public class Solution { public String trans(String s, int n) { // write code here //stack 换成stringBuilder1否则会超时 StringBuilder stringBuilder1 = new StringBuilder(); Stack<String> stack = new Stack<>(); char[] c = s.toCharArray(); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < c.length; i++) { if (Character.isLetter(c[i])) { if (Character.isUpperCase(c[i])) { stringBuilder.append((char) (c[i] + 32)); } if (Character.isLowerCase(c[i])) { stringBuilder.append((char) (c[i] - 32)); } } else { stringBuilder1.insert(0, stringBuilder.toString()); // stack.push(stringBuilder.toString()); // stack.push("" + c[i]); stringBuilder1.insert(0, c[i] + ""); stringBuilder.delete(0, stringBuilder.length()); } //单独处理边界情况,否则会丢失最后一个字符串 if (i == (c.length - 1)) { stringBuilder1.insert(0, stringBuilder.toString()); // stack.push(stringBuilder.toString()); } } // String res = ""; // while (!stack.isEmpty()) { // res += stack.pop(); // } return stringBuilder1.toString(); } }