题解 | #字符串变形#
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @param n int整型
     * @return string字符串
     */
    public String trans (String s, int n) {
        // 字符 长度
        // 字符串中由空格隔开的单词反序
        // 同时反转每个字符的大小写
        StringBuilder sb = new StringBuilder();
        Stack<Character> stack = new Stack<>();
        for (int i = n-1; i >= 0; i--) {
            if (s.charAt(i) == ' ') {
                // 栈不为空
                while (!stack.isEmpty()) {
                    char c = stack.pop();
                    if(Character.isUpperCase(c)){
                        c = Character.toLowerCase(c);
                    } else{
                        c = Character.toUpperCase(c);
                    }
                    sb.append(c);
                }
                // 是空格 添加空格
                sb.append(" ");
            } else {
                // 不是空格
                // 存储进栈
                // 后进先出
                // 倒序存进单词 弹出是正序
                stack.push(s.charAt(i));
            }
// 最后判断栈是否为空  
            if(i==0&&!stack.isEmpty()){
                while(!stack.isEmpty()){
                    char ch = stack.pop();
                    if(Character.isLowerCase(ch)){
                        ch = Character.toUpperCase(ch);
                    } else{
                        ch = Character.toLowerCase(ch);
                    }
                    sb.append(ch);
                }
            }
        }
// 返回结果
        return sb.toString();
    }
}
 查看30道真题和解析
查看30道真题和解析

 投递安恒信息等公司10个岗位
投递安恒信息等公司10个岗位