题解 | #翻转单词序列#
翻转单词序列
http://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3
第一种方法最容易想到的就是利用string的api,split切割空格获得string数组,然后逆序访问。
import java.util.*;
public class Solution {
public String ReverseSentence(String str) {
if(str.length() == 0){
return str;
}
StringBuilder rt = new StringBuilder();
String strS[] = str.split(" ");
for(int i = strS.length-1; i >= 0; i--){
rt.append(" ");
rt.append(strS[i]);
}
return rt.deleteCharAt(0).toString();
}
}
第二种方法是利用栈的先入后出原理,先切割空格获得String数组,然后通过栈进行排序,而后顺序访问。
import java.util.*;
public class Solution {
public String ReverseSentence(String str) {
if(str.length() == 0){
return str;
}
StringBuilder rt = new StringBuilder();
String strS[] = str.split(" ");
ArrayList<String> stack = new ArrayList(strS.length);
for(int i = 0; i < strS.length; i++){
stack.add(0, strS[i]);
}
for(int i = 0; i < stack.size(); i++){
rt.append(" ");
rt.append(stack.get(i));
}
return rt.deleteCharAt(0).toString();
}
}
查看14道真题和解析