题解 | #翻转单词序列#
翻转单词序列
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(); } }