题目:
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
遍历字符串,把字符串中的单词分割并保存到vector中,然后新建一个字符串,从后往前获取单词,依次往字符串中追加单词。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void reverseWords(string &s) {
vector<string> vec;
string rs;
int start=0;
int end=0;
string temp;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
if(i-start>0)
{
temp=s.substr(start,i-start);
vec.push_back(temp);
}
start=i+1;
}
else if(i==s.size()-1)
{
temp=s.substr(start,i-start+1);
vec.push_back(temp);
}
}
temp="";
for(int i=vec.size()-1;i>=0;i--)
{
temp.append(vec[i]);
if(i!=0)
{
temp.append(" ");
}
}
s=temp;
}
void main()
{
string s=" seasons in the sun ";
reverseWords(s);
cout<<s<<endl;
}