问题
给定一个字符串,逐个翻转字符串中的每个单词。
例子
思路
-
方法1
先把各单词反转,然后整个数组反转
-
方法2
代码
//方法1
class Solution {
public void reverseWords(char[] s) {
int begin=0;
for(int i=0; i<s.length; i++) {
if(s[i]==' ') {
if(i-1>=0) {
reverse(s,begin,i-1);
begin=i+1;
}
}
}
//最后一个 is blue的blue
if(begin<s.length)
reverse(s,begin,s.length-1);
reverse(s,0,s.length-1);
}
public void reverse(char[] s, int i, int j) {
while(i<j) {
char c = s[i];
s[i]=s[j];
s[j]=c;
i++;
j--;
}
return ;
}
}
//方法2