题目地址:
https://www.acwing.com/problem/content/777/
编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
输入格式:
输入为一个字符串
s
s
s(字符串长度至多为
100
100
100)。
输出格式:
输出为按要求排序后的字符串。
代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
string s;
getline(cin, s);
for (int i = 0, j = 0; i <= s.size(); i++)
if (i == s.size() || s[i] == ' ') {
reverse(s.begin() + j, s.begin() + i);
j = i + 1;
}
reverse(s.begin(), s.end());
cout << s << endl;
return 0;
}
时间复杂度 O ( l s ) O(l_s) O(ls),空间 O ( 1 ) O(1) O(1)。