将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
将一个英文语句以单词为单位逆序排放。
得到逆序的句子
I am a boy
boy a am I
有一种比较易实现的思路, 将每次cin的部分放进一个vector中, 然后反向遍历(迭代器auto it = vect.rbegin()), 最后一个元素单独处理, 否则会输出多余的空格.
已AC代码:
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
int main()
{
string str;
vector<string> vect;
while(cin>>str)
{
vect.push_back(str);
}
// vector<string>::iterator it = vect.rbegin(); // 反向循环
for( auto it = vect.rbegin(); it != vect.rend()-1; ++it)
{
cout<<*it<<" ";
}
cout<<vect[0]<<endl;
return 0;
}
相关链接:
http://stackoverflow.com/questions/3610933/iterating-c-vector-from-the-end-to-the-begin
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有