之前做过类似的题目,就是去遍历,然后找空格和非空格。
但需要注意一点Java基础就是在Java中,字符串是不可变的。所以必须要消耗额外的空间。
class Solution {
public String reverseWords(String s) {
StringBuilder sb = new StringBuilder();
int len = s.length();
int i = 0;
while(i<len){
int start = i;
while(i<len && s.charAt(i)!=' '){
i++;
}
for(int p = start; p<i; p++){
sb.append(s.charAt(start+i-1-p));
}
while(i<len &&s.charAt(i)==' '){
sb.append(' ');
i++;
}
}
return sb.toString();
}
}
着重注意for循环部分,需要start加后面那些,否则就一直在第一个单词处循环。