public class Solution {
    public String trans(String s, int n) {
        // write code here
        StringBuffer sb = new StringBuffer();
        StringBuffer sbSub = new StringBuffer();
        for(int i = s.length() - 1;i>=0;i--){
            //解析到空格则直接保存空格 解析到非空格则继续解析直到下一个空格 然后一起变换
            char next = s.charAt(i);
            if(next == ' '){
                if(sbSub.length() > 0){
                     sb.append(reserve(sbSub.toString()));
                     sbSub = new StringBuffer();
                }
                sb.append(" ");
            } else {
                sbSub.insert(0,next);
                if(i == 0){
                     sb.append(reserve(sbSub.toString()));
                }
            }
        }
        return sb.toString();
    }
    
    private String reserve(String target){
        StringBuffer sb = new StringBuffer();
        for(int i =0;i<target.length();i++){
            char next = target.charAt(i);
            if(next >= 'a'){
                sb.append((char)(next - 32));
            } else {
                sb.append((char)(next + 32));
            }
        }
        return sb.toString();
    }
}