题目:
给定一个输入字符串,其中各个单词之间由空格分开,每个单词的字符是顺序的,但是单词之间的顺序是逆序的。
实现一个翻转单词序列的算法。
如:
输入:student. a am I
输出:I am a student.
思路:
从左往右遍历字符串,逐个拼接每个单词即可。
贴代码:
#include <iostream>
#include <string>
using namespace std;
string ReverseSentence(string str)
{
string res = "", tmp = "";
for(unsigned int i = 0; i < str.size(); ++i)
{
// 遇到空格
if(str[i] == ' ')
{
res = " " + tmp + res;
tmp = "";
}
else
{
tmp += str[i];
}
}
// 最后一个字符
if(tmp.size())
res = tmp + res;
return res;
}
int main(void)
{
string str = "student. a am I";
cout<<ReverseSentence(str)<<endl;
return 0;
}