题目传送:https://leetcode.cn/problems/reverse-words-in-a-string/
运行效率:
代码如下:
class Solution {
public String reverseWords(String s) {
//处理特殊情况, 如果s就是一个单词
if(!s.contains(" ")){
return s;
}
//去掉左右两边多余的空格
s = s.trim();
Stack<String> stack = new Stack<>();
int left = 0;
int right = left + 1;
while (right < s.length()) {
//找到单词的尾部
while (right < s.length() && s.charAt(right) != ' ') {
right++;
}
//然后就可以截取单词
String word = s.substring(left, right);
stack.push(word);
s = s.substring(right).trim();
left=0;
right=left+1;
if(right==s.length()){
//然后就可以截取单词
word = s.substring(left, right);
stack.push(word);
s = s.substring(right).trim();
}
}
StringBuilder stringBuilder = new StringBuilder();
while (!stack.isEmpty()) {
String pop = stack.pop();
stringBuilder.append(pop).append(" ");
}
return stringBuilder.toString().trim();
}
}