先将整个字符串反转,然后对每个子字符串反转,然后删除字符串前后空格,最后删除多余的空格
class Solution {public:string reverseWords(string s) {//反转字符串s//然后将字符串s进行分割//对子字符串进行反转//将子字符串进行拼接reverse(s.begin(), s.end());int start=0;for (int i=0;i<s.size();++i) {if (s[i]==' ') {reverse(s.begin()+start, s.begin()+i);start=i+1;}}reverse(s.begin()+start, s.end());//除去前后空格int dx=0;for (int i=0;i<s.size();++i) {if(s[i]==' ') {dx++;}else{break;}}s.erase(0,dx);//删除后面的空格dx=0;int i;for (i=s.size()-1;i>0;i--) {if(s[i]==' ') {dx++;}else{break;}}s.erase(i+1, dx);//删除多余的空格for (int i=0;i<s.size();++i) {if (s[i]==' ') {int dx=0;for (int j=i+1;j<s.size();++j) {if (s[j]==' ') {dx++;}else {break;}}if (dx>0) {s.erase(i+1, dx);}}}return s;}};
