zoukankan      html  css  js  c++  java
  • COJ 0017 20604悲剧文本

    传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=17

    20604悲剧文本
    难度级别:B; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
    试题描述

        你有一个键盘,键盘上所有的键都能正常使用,只是Home键和End键有时会自动按下。你并不知道这一情况,而是专心地打稿子,甚至连显示器都没开电源。当你打开显示器之后,展现在你面前的是一段悲剧文本。你的任务是根据给出的键盘上实际输入的内容,计算并输出这段悲剧文本(即显示器上展现的文本)。

    输入
    一行文本不超过1000000个字符,只包括字母、下划线、字符'['(表示Home键)和字符']'(表示End键盘)。
    输出
    一个字符串,即符合题目描述的悲剧文本。
    输入示例
    This_is_a_[Beijing]_text
    输出示例
    BeijingThis_is_a__text
    其他说明
    如果你还不知道键盘上Home键和End键干什么用的,请你百度一下。

    蒟蒻链表,但很容易写错的。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<algorithm>
     6 using namespace std;
     7 const int maxn=1000000+10;
     8 int fch,end,now,next[maxn],ms=0,v[maxn];
     9 inline int read(){
    10     int x=0,sig=1;char ch=getchar();
    11     while(!isdigit(ch)){if(ch=='-') sig=-1;ch=getchar();}
    12     while(isdigit(ch)) x=10*x+ch-'0',ch=getchar();
    13     return x*=sig;
    14 }
    15 inline void write(int x){
    16     if(x==0){putchar('0');return;} if(x<0) putchar('-'),x=-x;
    17     int len=0,buf[15]; while(x) buf[len++]=x%10,x/=10;
    18     for(int i=len-1;i>=0;i--) putchar(buf[i]+'0');return;
    19 }
    20 void init(){
    21     return;
    22 }
    23 void work(){
    24     fch=0;now=0;end=0;next[fch]=-1;
    25     char ch=getchar();
    26     while(1){
    27         if(ch=='[') now=fch;
    28         else if(ch==']') now=end;
    29         else if(isalpha(ch)||ch=='_'){
    30             next[++ms]=next[now];
    31             next[now]=ms;
    32             v[ms]=ch;
    33             now=ms;
    34             if(next[now]==-1) end=ms;
    35         }
    36         else break;
    37         ch=getchar();
    38     }
    39     return;
    40 }
    41 void print(){
    42     for(int i=next[fch];i!=-1;i=next[i]) putchar(v[i]);
    43     return;
    44 }
    45 int main(){
    46     init();work();print();return 0;
    47 }
  • 相关阅读:
    算法
    jquery-lazyload延迟加载图片
    配置图片服务器
    Flutter开发之dart语言从入门到精通(从入坑到入土)
    阿里淘系技术分享:Flutter 快速上手方法!!!
    如何优雅的处理 Android 重复点击 [建议收藏]
    还谈论Android的前景?根本没什么好问的……
    一个商业级智能家居 Android 开源项目分享
    【前端算法】拼多多技术面试算法题分享
    美团Android岗面试真题:手写红黑树详解
  • 原文地址:https://www.cnblogs.com/chxer/p/4456872.html
Copyright © 2011-2022 走看看