2021-2022-2 ACM集训队每周程序设计竞赛(10) - 问题 A: 还原撕碎的字条,哄笑生气的毛毛 - 题解
Posted Tisfy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-2022-2 ACM集训队每周程序设计竞赛(10) - 问题 A: 还原撕碎的字条,哄笑生气的毛毛 - 题解相关的知识,希望对你有一定的参考价值。
传送门
还原撕碎的字条,哄笑生气的毛毛
时间限制:1秒
空间限制:128M
题目描述
坏坏的小F递给了MM一张纸条,上面写着:
只 有 不 聪 明 的 人 才 能 看 到 只有不聪明的人才能看到 只有不聪明的人才能看到
MM看到后,一气之下把这张纸条撕成了很多份,并扔到了碎纸盒中。冷笑道:“有本事把它给我还原出来”。
细心的小F观察到了MM扔纸条的规律:
MM每次都会从纸条的左边撕掉一段(假设不会撕坏上面的字),然后放入碎纸盒里(的最上面)。
最后剩下的一段纸条也会扔到碎纸盒中
如果不能理解,请参考视频版描述:
BiliBili视频地址:https://www.bilibili.com/video/BV1VB4y117vL或者播放题目描述PPT:https://letmefly.xyz/Links/Redirect/id.html?10
视频的意思是:
-
原始纸条是“只有不聪明的人才能看到”
-
MM在左边剪了一刀,变成了“只有不聪”和“明的人才能看到”
-
MM把左边的纸条扔进了碎纸盒,碎纸盒中的纸条为“只有不聪”,MM手中的纸条为“明的人才能看到”
-
MM在左边剪了一刀,变成了“明的人才”和“能看到”
-
MM把左边的纸条扔进了碎纸盒,碎纸盒中的纸条从上到下依次为“明的人才”和“只有不聪”,MM手中的纸条为“能看到”
-
MM把手中剩下的纸条“能看到”也扔入了碎纸盒,最终碎纸盒中的纸条从上到下一次是: “能看到”,“明的人才”和“只有不聪”
输入描述
输入包括一行空格隔开的一些字符串,代表碎纸盒中从上到下的纸条上的内容
- 1 ≤ 字 符 串 ≤ 1 0 3 1\\leq 字符串 \\leq 10^3 1≤字符串≤103
- 1 ≤ 字 符 串 . l e n g t h ≤ 1 0 3 1\\leq 字符串.length\\leq 10^3 1≤字符串.length≤103
请放心,和样例不同,测试数据中纸条上的文字全是英文,不包含中文
输出描述
输出包括一行一个字符串
请你根据碎纸盒中纸条上的内容,来还原出原始纸条并输出
样例一
输入
能看到 明的人才 只有不聪
输出
只有不聪明的人才能看到
样例二
输入
Fly Me Let
输出
LetMeFly
样例三
输入
H H
输出
HH
题目分析
本题中碎纸盒其实就是一个栈。
也就是说给你出栈顺序要你求原来的出入栈顺序。
解法也很简单,只需要反过来将出栈的内容按顺序压入一个新的栈中,再依次出栈即可得到原始序列。
AC代码
#include <bits/stdc++.h>
using namespace std;
#define mem(a) memset(a, 0, sizeof(a))
#define dbg(x) cout << #x << " = " << x << endl
#define fi(i, l, r) for (int i = l; i < r; i++)
#define cd(a) scanf("%d", &a)
typedef long long ll;
int main()
string s;
stack<string> st;
while (cin >> s)
st.push(s);
while (st.size())
cout << st.top();
st.pop();
return 0;
点关注,不迷路
原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/124513273
以上是关于2021-2022-2 ACM集训队每周程序设计竞赛(10) - 问题 A: 还原撕碎的字条,哄笑生气的毛毛 - 题解的主要内容,如果未能解决你的问题,请参考以下文章
2021-2022-2 ACM集训队每周程序设计竞赛(13)题解
2021-2022-2 ACM集训队每周程序设计竞赛(13)题解
2021-2022-2 ACM集训队每周程序设计竞赛(13)题解