题目链接:https://www.acwing.com/problem/content/73/
题目如下:
class Solution {
public:
string reverseWords(string s) {
s.erase(0,s.find_first_not_of(' '));
s.erase(s.find_last_not_of(' ')+1);
//思路:先整体反转,再单个反转;或先单个反转,再整体反转
reverse(s.begin(),s.end());
for(int i=0,j=0;j<s.size();j++){//双指针i和j确定一个单词的首尾,进行反转
if(j+1==s.size()) reversestr(s,i,j);
if(s[j]==' '){
reversestr(s,i,j-1);
i=j+1;
while(j+1<s.size()&&s[j+1]==' '){
s.erase(j+1,1);
j++;
}
}
}
return s;
}
void reversestr(string& str,int i,int j){
while(i<j){
swap(str[i],str[j]);
i++;
j--;
}
}
};