时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输出格式:每个测试用例的输出占一行,输出倒序后的句子。

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello

 思路:将所有单词倒着存储,正向输出,方法1:使用栈,正好满足先进后出的特性,方法2使用其它容器

方法1

 1 // 1009_1.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream>
 6 #include<stack>
 7 #include<string>
 8 
 9 using namespace std;
10 
11 int main()
12 {
13     char c;
14     stack<string> s;
15     string str;
16 
17     while (cin >> str)
18     {
19         s.push(str);
20 
21         if ((c = getchar()) == '\n')//判断输入是否完毕
22             break;
23     }
24 
25     cout<<s.top();
26     s.pop();
27 
28     while (!s.empty())
29     {
30         cout << " " << s.top();
31         s.pop();
32     }
33 
34     return 0;
35 }

 

方法2: 

 1 // 1009.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream>
 6 #include<string>
 7 #include<vector>
 8 
 9 using namespace std;
10 
11 int main()
12 {
13     char c;
14     vector<string> v;
15     string str;
16     int j ;
17 
18     while (cin >> str)
19     {
20         v.insert(v.begin(),str);
21 
22         if((c = getchar())=='\n')
23             break;
24     }
25 
26     vector<string>::iterator i = v.begin(), end = v.end();
27 
28     for (j = v.size(); j>0; j--, i++)
29     {
30         cout << *i;
31 
32         if (j != 1)
33             cout << " ";
34     }
35 
36     return 0;
37 }

 

相关文章:

  • 2021-06-04
  • 2022-12-23
  • 2021-05-10
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2021-06-10
猜你喜欢
  • 2021-11-11
  • 2021-07-11
  • 2022-12-23
  • 2021-06-29
  • 2021-10-27
  • 2021-10-08
  • 2022-12-23
相关资源
相似解决方案