描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
知识点 数组
运行时间限制 10M
内存限制 128
输入
将一个英文语句以单词为单位逆序排放。
输出
得到逆序的句子
样例输入 I am a boy
样例输出 boy a am I
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){
string s;
getline(cin,s);
int cnt = 0;
for (int i = s.size() - 1; i >= 0; i--){
if (isalpha(s[i])) cnt++;
else{
cout << s.substr(i + 1, cnt) << " ";
cnt = 0;
}
}
cout << s.substr(0, cnt);
return 0;
}
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<cmath>
#include<unordered_map>
using namespace std;
int main(){
string s;
getline(cin, s);
reverse(s.begin(), s.end());
int pos;
string str;
int cnt = count(s.begin(), s.end(), ' ');
for (int i = 0; i < cnt; i++){
pos=s.find(' ');
str=s.substr(0, pos);
reverse(str.begin(), str.end());
cout << str<<" ";
s = s.substr(pos + 1);
}
reverse(s.begin(), s.end());
cout << s << endl;
return 0;
}