题解 | #字符串变形#
字符串变形
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();
}
}