package leetcode;
import java.util.Stack;
/**
* Created by smallstrong on 14-8-31.
*/
//For example,
// Given s = "the sky is blue",
// return "blue is sky the".
//
// click to show clarification.
//
// Clarification:
// What constitutes a word?
// A sequence of non-space characters constitutes a word.
// Could the input string contain leading or trailing spaces?
// Yes. However, your reversed string should not contain leading or trailing spaces.
// How about multiple spaces between two words?
// Reduce them to a single space in the reversed string.
public class WordString {
public static String reverseWords(String s) {
if(s.length() == 0) {
return s;
}
Stack<String> stack = new Stack<String>();
String[] ss = s.split("\s+");
for(String word : ss) {
stack.push(word);
}
StringBuilder sb = new StringBuilder();
while(!stack.isEmpty()) {
sb.append(stack.pop()).append(" ");
}
return sb.toString().trim();
}
public static void main(String[] args){
String s = "the sky is blue";
System.out.print(reverseWords(s));
}
}