解法一
指针,倒序阅读,性能较差
class Solution {
public:
string reverseWords(string s) {
if(s.empty()) return s;
int lenth = 0;
string res="";
for (int i = s.size()-1; i>=0; i--)
{
if(s[i]==' ' && lenth!=0){
res=res+s.substr(i+1,lenth)+" ";//注意substr用法
lenth=0;
continue;
}
if(s[i]!=' ') lenth++;
}
if(lenth!=0) res=res+s.substr(0,lenth)+" ";
if(res.size()>0) res.erase(res.size()-1,1);//删除从倒数第二个开始的1个字符
return res;
}
};
解法二
字符流法,利用istringstream按空格分word
//sstream
class Solution {
public:
string reverseWords(string s) {
istringstream istr(s);//istr以空格为分隔符把s分开
string res,word;
while (istr>>word)
{
res= word+' '+res;
}
return res.substr(0,res.size()-1);
}
};