题目
1、分析
- 首先将每个单词进行翻转
- 再将以上的结果进行再次翻转,即可得到最终的结果
2、代码
class Solution {
public:
string ReverseSentence(string str) {
int len=str.length();
if(len<0)
return NULL;
int pStart=0;
int pEnd=0;
//对每个单词进行翻转
for(int i=0;i<len;++i)
{
if(str[i+1]==' ' || i==len-1)
{
pEnd=i;
ReverseWord(str,pStart,pEnd);
pStart=i+2;
}
}
//对翻转后的单词进行再次翻转
ReverseWord(str,0,len-1);
return str;
}
void ReverseWord(string &str,int begin,int end)
{
while(begin<=end)
swap(str[begin++],str[end--]);
}
};