[湖南大学程序设计实训训练作业二]1.字符串反转2(vector+reverse或者stack)

el/2024/7/17 4:47:20

1.字符串反转2

  • 【问题描述】
  • 【输入形式】
  • 【输出形式】
  • 【样例输入】
  • 【样例输出】
  • 题解
    • 思路
    • 代码1
    • 代码2

【问题描述】

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: “hello xiao mi”-> “mi xiao hello”

【输入形式】

输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)

【输出形式】

对于每个测试示例,要求输出句子中单词反转后形成的句子

【样例输入】

hello xiao mi
I am a student

【样例输出】

mi xiao hello
student a am I

题解

思路

这个题和前面作业一做过的一道字符串反转很像,或者说更加简单…

  • 1.我们同样用sstream拿到每个单词
  • 2.1可以用vector存储reverse反转后输出
  • 2.2可以直接用stack栈来存储,然后弹出就可以了

代码1

#include<iostream>
#include<string>
#include<sstream>
#include<vector>
#include<stack>
#include<algorithm>
using namespace std;
int main(){string s;while(getline(cin,s)){vector<string> res;stringstream ss;ss<<s;while(ss>>s){res.push_back(s);}reverse(res.begin(),res.end());for(int i=0;i<res.size();i++){cout<<res[i];if(i!=res.size()-1) cout<<" ";else cout<<endl; } }return 0;
} 

代码2

#include<iostream>
#include<string>
#include<sstream>
#include<vector>
#include<stack>
#include<algorithm>
using namespace std;
int main(){string s;while(getline(cin,s)){vector<string> res;stringstream ss;ss<<s;stack<string> res_2;while(ss>>s){res_2.push(s);}while(res_2.size()){cout<<res_2.top()<<" ";res_2.pop(); }cout<<endl;}return 0;
} 

http://www.ngui.cc/el/3573938.html

相关文章

[湖南大学程序设计实训训练作业二]2.487-3279(次数问题用map)

2.487-3279【问题描述】【输入形式】【输出形式】【样例输入】【样例输出】题解思路代码【问题描述】 每个人都喜欢有令人难忘的电话号码。要想让电话号码变得令人难忘的一种方法是拼出一个令人难忘的单词或短语。例如&#xff0c;你可以拨打滑铁卢大学的电话&#xff0c;拨打…

[湖南大学程序设计实训训练作业二]3.缺席考试的是谁?(map过一半,需用set优化)

3.缺席考试的是谁&#xff1f;【问题描述】【输入形式】【输出形式】【样例输入】【样例输出】题解思路1思路2代码【问题描述】 程序设计考试结束了&#xff0c;传来个不好的消息&#xff1a;有一个学生没参加考试!需要尽快知道缺席考试的人是谁&#xff0c;以便尽快做出处理。…

[湖南大学程序设计实训训练作业二]5.点球大战

5.点球大战【问题描述】【输入形式】【输出形式】【样例输入】【样例输出】题解思路代码【问题描述】 在足球比赛中&#xff0c;有不少赛事&#xff0c;例如世界杯淘汰赛和欧洲冠军联赛淘汰赛中&#xff0c;当比赛双方经过正规比赛和加时赛之后仍然不分胜负时&#xff0c;需要…

[湖南大学程序设计实训训练作业二]6.飞行棋(递归模拟)

6.飞行棋【问题描述】【输入形式】【样例输入】【样例输出】题解思路代码【问题描述】 大家当年一定都下过飞行棋吧。现在Lele和Yueyue要下的棋和这个很相似&#xff0c;只是更简单一点而已。 棋盘由N个格子组成&#xff0c;分别标记为第0格到第N-1格。格子分为两种&#xff0…

[湖南大学程序设计实训训练作业二]7.棋盘

7.棋盘【问题描述】【输入形式】【输出形式】【样例输入】【样例输出】题解思路代码【问题描述】 棋盘是指一个行和列编号从1~N的NxN的二进制矩阵&#xff0c;当行号和列号之和为偶数时该矩阵对应位置为黑色的(1)&#xff0c;否则为白色的(0)。以下图示为N1、2、3时的棋盘。 …

[湖南大学程序设计实训训练作业二]8.Engine-字符串(字符串切割+结构体map存储+切割vector查询)

8.Engine-字符串写在前面【问题描述】【输入形式】【输出形式】【样例输入1】【样例输出1】【样例输入2】【样例输出2】题解思路代码写在前面 这题真的是支棱了一个上午&#xff0c;可恶啊&#xff0c;中间出了些简单的bug但是找了好久&#xff0c;可恶啊&#xff01;&#xf…

[湖南大学程序设计实训训练作业二]9.字符串压缩(贪心递归模拟)

9.字符串压缩【问题描述】【输入形式】【输出形式】【样例输入1】【样例输出1】【样例输入2】【样例输出2】【样例输入3】【样例输出3】题解思路代码【问题描述】 给定一个由n个小写字母组成的字符串s&#xff0c;需要使用最少数量的钱币来压缩它。 压缩该字符串&#xff0c;…

[湖南大学程序设计实训训练作业二]10.拼写检查(正难则反!)

10.拼写检查【问题描述】【输入形式】【输出形式】【样例输入】【样例输出】题解思路代码【问题描述】 作为一个新的拼写检查程序开发团队的成员&#xff0c;您将编写一个模块&#xff0c;用已知的所有形式正确的词典来检查给定单词的正确性。 如果字典中没有这个词&#xff0…

[湖南大学程序设计实训训练作业二]11.最小的k个数(认识set)

11.最小的k个数【问题描述】【输入形式】【输出形式】【样例输入】【样例输出】【Tips】题解思路代码【问题描述】 输入n个整数&#xff0c;找出其中最小的k&#xff08;k<n&#xff09;个不同数。例如输入4,5,1,6,1,7,3,8这8个数字&#xff0c;则最小的4个数字是1,3,4,5。…

[湖南大学程序设计实训训练作业二]12. 绩点计算

12. 绩点计算【问题描述】【输入形式】【输出形式】【样例输入】【样例输出】题解思路代码【问题描述】 学校对本科生的成绩施行绩点制&#xff08;GPA&#xff09;。将学生的实际考分根据不同学科的不同学分按一定的公式进行计算。规定如下&#xff1a; 实际成绩绩点90-1004…