给定输入字符串,逐个单词地反转字符串。单词被定义为一系列非空格字符。输入字符串不包含前导或尾随空格,并且单词始终由单个空格分隔。
例如,
Given s = “the sky is blue”,
return “blue is sky the”.
Java解决方案
public void reverseWords(char[] s) {
int i=0;
for(int j=0; j<s.length; j++){
if(s[j]==' '){
reverse(s, i, j-1);
i=j+1;
}
}
reverse(s, i, s.length-1);
reverse(s, 0, s.length-1);
}
public void reverse(char[] s, int i, int j){
while(i<j){
char temp = s[i];
s[i]=s[j];
s[j]=temp;
i++;
j--;
}
}