考虑几个特殊的情况
1.若字符窜s=" "
2.字符窜s=“a b d e”
3.字符窜s=“ a”
然后在s后面+上一个‘ ’,每次遇到s[i]为空格,s[i-1]不为空格的时候为一个单词
class Solution { public: void reverseWords(string &s) { int i; int cas=0; string st[100]; s+=' '; for(i=0; i<s.size(); i++) { if(i==0 && s[0]==' ') continue;//排除掉首字符窜为空格 if(s[i]==' ' && s[i-1]==' ') continue;//排除掉多个空格字符 if(s[i]==' ' && s[i-1]!=' ') { cas++; continue; } st[cas]+=s[i]; } s.clear(); if(cas==0) return ; s+=st[cas-1]; for(i=cas-2; i>=0; i--) { if(st[i]!=" ") { s+=' '; s+=st[i]; } } } };