题目描述 Description

有一天,你需要打一份文件,但是你的键盘坏了,上面的"home"键和"end"键会时不时地按下,而你却毫不知情,甚至你都懒得打开显示器,当你打开显示器之后,出现在你的面前的是一段悲剧的文本。

输入描述 Input Description

输入只有一行,即这份文件,这份文件只包含小写字母和'['以及']',用'['代替"home"键,用']'代替"end"键。

输出描述 Output Description

你的任务是在打开显示器之前,计算出这份悲剧的文档。

样例输入 Sample Input

kdg[gek]h[itj

de[co]vs

样例输出 Sample Output

itjgekkdgh

codevs

数据范围及提示 Data Size & Hint

包含多组测试数据,直到文件结束。

字符串长度小于10000个字符。

不包含空格。

分析:用’[’或’]’把字符串隔成几个部分,给几个部分按’[’或’]’附上编号,最后按编号排序输入。
时间将近2000ms,空间也是擦边过,唏嘘一场。
代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#define M 10010
using namespace std;
int front,behind;
char s[M];
struct node
{
char ss[M/];
int num,len;
};node e[M/];
bool cmp(const node&x,const node&y)
{
return x.num<y.num;
}
int main()
{
while(scanf("%s",s)!=EOF)
{
memset(e,,sizeof(e));
front=behind=;
int len=strlen(s),cnt=;
e[].num=;
for(int i=;i<len;i++)
{
char c=s[i];
if(s[i]=='[')
{
if(e[].len)++cnt;
e[cnt].num=--front;
}
else if(s[i]==']')
{
if(e[].len)++cnt;
e[cnt].num=++behind;
}
else e[cnt].ss[++e[cnt].len]=s[i];
}
sort(e+,e+cnt+,cmp);
for(int i=;i<=cnt;i++)
for(int j=;j<=e[i].len;j++)
printf("%c",e[i].ss[j]);
cout<<endl;
}
return ;
}

最新文章

  1. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
  2. 使用Tmux提高linux终端环境下的效率
  3. 深入理解 C 语言的函数调用过程
  4. Webpack使用教程五(Babel)
  5. Opencv Linux环境搭建
  6. [ZZ] 在windows上编译Mesa3d opengl32库
  7. protocol(协议)的一些要点
  8. PC和移动端浏览器同步测试工具Browsersync使用介绍
  9. ThinkPHP CURD方法盘点:limit方法
  10. poj 01背包
  11. hdu 4444 Walk (离散化+建图+bfs+三维判重 好题)
  12. &lt;转&gt;如何利用socket进行HTTP访问
  13. jquery操作HTML5 的data-*的用法实例分享
  14. opencv摄像头捕获图像
  15. spoj839Optimal Marks
  16. xsy子矩形
  17. [转]idea导入eclipse的web项目
  18. Jmeter JDBC Request 查询语句中有汉字查询结果为空的解决方法
  19. python成长之路五-文件操作
  20. ubuntu无法关机,卡死

热门文章

  1. python_基础部分(1)
  2. Kali linux 2016.2(Rolling)里的应用更新和配置额外安全工具
  3. leetcode790 Domino and Tromino Tiling
  4. 2019最新版Devops工具集
  5. php中 mysql 插入特殊字符(手机端的emoji表情)出现异常
  6. linux下svn安装(ALI ECS)
  7. 关于AMAZON SES设置的一些要点
  8. Bootstrap modal使用及点击外部不消失的解决方法
  9. ubuntu18.04 python版本切换
  10. web pack 生成本地dist后 本地可以访问 路径由/ 改 ./