描述
题目描述
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
样例输入
I am a student
样例输入
student a am I
知识点 字符串,排序
运行时间限制 10M
内存限制 128
输入
输入一行以空格来分隔的句子
输出
输出句子的逆序
样例输入 I am a student
样例输出 student a am I
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<unordered_map>
#include<fstream>
#include<sstream>
#include<queue>
#include<stack>
using namespace std;
int main(){
vector<string> v;
string str;
string s;
getline(cin, s);
while (s.size() && !isalpha(s[0]))//清除首部的空格
s.erase(s.begin());
while (s.size() && !isalpha(s[s.size()-1]))//清除尾部的空格
s.erase(s.end() - 1);
int pos;
for (int i = 0; i < s.size(); i++){
while (i<s.size()&&isalpha(s[i])){
str += s[i];
i++;
}
v.push_back(str);
str.clear();
while (i < s.size()&&!isalpha(s[i]) ){
i++;
}
i--;
}
for (int i = v.size()-1; i > 0; i--)
cout << v[i] << " ";
cout <<v[0]<< endl;
return 0;
}