151. 反转字符串中的单词
class Solution {
public String reverseWords(String s) {
StringBuilder str = removespace(s);
removesString(str,0,str.length()-1);
reverEach(str);
return str.toString();
}
public StringBuilder removespace(String s){
int start = 0;
int end = s.length()-1;
while(s.charAt(start)==' ')start++;
while(s.charAt(end)==' ')end--;
StringBuilder str = new StringBuilder();
while(start<=end){
char c = s.charAt(start);
if(c != ' ' || str.charAt(str.length()-1) !=' '){
str.append(c);
}
start++;
}
return str;
}
public void removesString(StringBuilder str,int start,int end){
while(start<end){
char temp = str.charAt(start);
str.setCharAt(start,str.charAt(end));
str.setCharAt(end,temp);
start++;
end--;
}
}
public void reverEach(StringBuilder str){
int start = 0;
int end = 1;
int n = str.length();
while(start < n){
while(end < n && str.charAt(end) != ' '){
end++;
}
removesString(str,start,end-1);
start = end+1;
end = start+1;
}
}
}