题解 | #倒置字符串#
倒置字符串
http://www.nowcoder.com/questionTerminal/8869d99cf1264e60a6d9eff4295e5bab
先将字符串整个逆置一遍,再挨个逆置每个单词。 注意要考虑越界。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str;
getline(cin, str);
reverse(str.begin(), str.end()); // 先完全倒置一遍
for (size_t i = 0; i < str.size(); ++i) {
int tmp = i;
while (i < str.size() && str[i] != ' ') // 注意别越界 查找单词分界
++i;
reverse(str.begin() + tmp, str.begin() + i); // 倒置每一个单词
}
cout << str << endl;
}