思路
先找到每个单词的位置,然后对这个单词中的字母进行反转
class Solution {
public String reverseWords(String s) {
int n = s.length();
char a[] = s.toCharArray();
int i = 0,j=0;
//找到每一个单词的起始位置和结束位置
while(i<n){
while(i<j||i<n&&a[i]==' ') i++;
while(j<i||j<n&&a[j]!=' ') j++;
reverse(a, i, j-1);
}
return String.valueOf(a);
}
//对从第i个位置到j个位置进行反转
private void reverse(char[] a,int i,int j){
while(i<=j){
char tmp = a[i];
a[i++]=a[j];
a[j--]=tmp;
}
}
}
类似题目
151 翻转字符串里的单词
**