题目传送: https://leetcode.cn/problems/reverse-words-in-a-string/
运行效率:
代码如下:
class Solution {
public String reverseWords(String s) {
//首先把字符串首尾两端的空格去掉
s=s.trim();
Stack<String> stack = new Stack<>();
int i=0;
int start=0;
while(i<s.length()) {
//如果是空格
if(s.charAt(i)==' '){
String word = s.substring(start, i);
stack.push(word);
i++;
while(s.charAt(i)==' '){
i++;
}
//直到遇到下一个单词的首字母为止
start=i;
}else{
i++;
}
}
//再把最后一个单词加到栈里
String lastWord=s.substring(start,i);
stack.push(lastWord);
StringBuilder stringBuilder = new StringBuilder();
//最后把栈里的元素一个个弹出来
while(!stack.isEmpty()){
String pop = stack.pop();
stringBuilder.append(pop).append(" ");
}
return stringBuilder.toString().trim();
}
}