问题
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

例子

思路
-
方法1
split
更优 -
方法2
用栈,不为" “就放到栈里,如果是” ",就把栈里的字符取出放入sb,就反过来的
代码
//方法1
class Solution {
public String reverseWords(String s) {
String[] arr= s.split(" ");
StringBuilder sb = new StringBuilder();
for(String ss :arr) {
for(int i=ss.length()-1; i>=0; i--)
sb.append(ss.charAt(i));
sb.append(" ");
}
return sb.toString().trim();//最后一个为" "
}
}
//方法2
Stack<Character> stack = new Stack<>();
StringBuilder sb = new StringBuilder();
for(int i=0; i<s.length(); i++){
if(s.charAt(i)!=' ') stack.push(s.charAt(i));
else{
while(stack.size()>0)
sb.append(stack.pop());
sb.append(' ');
}
}
//最后一个单词
while(stack.size()>0)
sb.append(stack.pop());
return sb.toString();

本文介绍了一种字符串处理算法,该算法能反转字符串中每个单词的字符顺序,同时保持空格和单词的初始顺序不变。提供了两种实现方法,一种使用split方法,另一种利用栈结构,详细阐述了每种方法的步骤并附带代码示例。
792

被折叠的 条评论
为什么被折叠?



