public class Solution {
public void reverseWords(char[] s) {
if (s == null || s.length == 0) {
return;
}
int start = 0, end = s.length - 1;
while (start < end) {
char temp = s[start];
s[start++] = s[end];
s[end--] = temp;
}
int idx = 0;
for (int i = 0; i < s.length; i++) {
if (s[i] != ' ' && i + 1 != s.length) {
continue;
} else {
int j = 0;
if (i + 1 == s.length)
j = i;
else
j = i - 1;
while (idx < j) {
char temp = s[idx];
s[idx++] = s[j];
s[j--] = temp;
}
idx = i + 1;
}
}
}
// public void reverseWords(char[] s) {
// if (s == null || s.length == 0) {
// return;
// }
// String string = new String(s);
// String[] strArray = string.split(" ");
// int left = 0, right = strArray.length - 1;
// while (left < right) {
// String temp = strArray[left];
// strArray[left] = strArray[right];
// strArray[right] = temp;
// left++;
// right--;
// }
// for(int i = 0; i < s.length;) {
// for (String str: strArray) {
// for (int j = 0; j <str.length(); j++) {
// s[i++] = str.charAt(j);
// }
// if (i < s.length)
// s[i++] = ' ';
// }
// }
// }
}