牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
解题思路:利用栈先进后出的特征。
public class Solution {
public static void main(String[] args) {
//“student. a am I” 变为 “I am a student.”
String str ="student. a am I";
Solution soltion = new Solution();
soltion.ReverseSentence(str);
}
public String ReverseSentence(String str){
Stack stack = new Stack();
int index= 0;
for(int i=0;i<str.length();i++){
if(str.charAt(i) == ' '){
stack.push(str.substring( index, i));
stack.push(" ");
index = i+1;
}
}
stack.push(str.substring(index, str.length()));
System.out.println(stack);
String str2 = "";
while(!stack.empty()){
str2+=stack.peek();
stack.pop();
}
System.out.println(str2);
return str2;
}
}