Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
Update (2015-02-12):
For C programmers: Try to solve it in-place in O(1) space.
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public String reverseWords(String s) {
if (s == null || s.length() == 0) {
return s;
}
String[] split = s.split(" ");
if (split == null || split.length == 0) {
return "";
}
ArrayList<String> arrayList = new ArrayList<String>();
for (int i = 0; i < split.length; i++) {
if (!split[i].equals("")) {
arrayList.add(split[i]);
}
}
Collections.reverse(arrayList);
String res = new String();
for (int i = 0; i < arrayList.size() - 1; i++) {
res += arrayList.get(i) + " ";
}
res += arrayList.get(arrayList.size()-1);
return res;
}
}