import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param n int整型 * @return string字符串 */ public String trans (String s, int n) { char[] cs = s.toCharArray(); reverse(cs, 0, cs.length - 1, true); // 找到每个空格,再翻转一次 int l = 0, r = 0; while (r < cs.length) { while (r < cs.length && cs[r] != ' ') r++; reverse(cs, l, r - 1, false); r++; l = r; } return String.valueOf(cs); } private void reverse(char[] cs, int l, int r, boolean flag) { while (l <= r) { // flag = true时,顺便将大小写转换了 char t = flag ? changeCase(cs[l]) : cs[l]; cs[l] = flag ? changeCase(cs[r]) : cs[r]; cs[r] = t; l++; r--; } } private char changeCase(char c) { int diff = 'a' - 'A'; if (c >= 'A' && c <= 'Z') c += diff; else if (c >= 'a' && c <= 'z') c -= diff; return c; } }