题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
思路:这题的思路也很简答,我们直接把字符串以空格分割,得到一个个的单词,然后把单词都按顺序导入栈中,因为栈的先进后出,所以再从栈中导出,就得到了正确的结果了。
代码:
import java.util.*;
public class Solution {
public String ReverseSentence(String str) {
String temp = " ";
Stack<String> stack = new Stack<String>();
int size = str.length();
String[] st = str.split(" ");
//如果字符串为空,则直接返回
if(str.isEmpty()){
return str;
}
//如果字符串里只要空格,则直接返回
if(st.length==0){
return str;
}
//把分割后的字符串导入到栈中,并加上空格
for(int i=0;i<st.length;i++){
stack.push(st[i]);
stack.push(" ");
}
String string = "";
//移除栈顶的空格
stack.pop();
//把栈中数据导入到字符串中
while(!stack.isEmpty()){
string = string + stack.pop();
}
return string;
}
}