题目
分析
我的思路是遍历原字符串,采用一个临时字符串来保存累加的值,如果遇到空格,则把之前累加的字符串存入ArrayList并把临时字符串置为空,继续后面的遍历,这里要注意别忘记加上最后一段。得到单词队列后从后往前遍历,分别取出字符串拼接并加上空格,当拼接到最后一个单词时就不需要加空格了。
代码
import java.util.*;
public class Solution {
public String ReverseSentence(String str) {
ArrayList<String> list = new ArrayList();
String string = "";
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) != ' ') {
string += str.charAt(i);
}else {
list.add(string);
string = "";
}
}
list.add(string);
string = "";
for(int i = list.size() - 1; i >= 0; i--) {
string += list.get(i);
if(i != 0) {
string += " ";
}
}
return string;
}
}