题目链接: 传送门

Broken Keyboard

#include<bits/stdc++.h>
using namespace std;
char str[100010];
int main()
{
    while(scanf("%s",str)!=EOF)
    {
        deque<int > q;
        int i=0;
        while(str[i]=='['||str[i]==']')  i++;
        q.push_front(i);
        while(str[i])
        {
            if(str[i]=='[')
            {
                q.push_front(i+1);
                str[i]='\0';
            }
            else if(str[i]==']')
            {
                q.push_back(i+1);
                str[i]='\0';
            }
            i++;
        }
        while(!q.empty())
        {
            printf("%s",str+q.front());
            q.pop_front();
        }
        printf("\n");

    }
    return 0;
}

刘汝佳版

// UVa11988 Broken Keyboard
// Rujia Liu
#include<cstdio>
#include<cstring>
const int maxn = 100000 + 5;
int last, cur, next[maxn]; // 光标位于cur号字符的后面
char s[maxn];

int main()
{
    while(scanf("%s", s+1) == 1)
    {
        int n = strlen(s+1); // 输入保存在s[1], s[2]...中
        last = cur = 0;
        next[0] = 0;

        for(int i = 1; i <= n; i++)
        {
            char ch = s[i];
            if(ch == '[')
            {
                cur = 0;
            }
            else if(ch == ']')
            {
                cur = last;
            }
            else
            {
                next[i] = next[cur];
                next[cur] = i;
                if(cur == last) // 更新“最后一个字符”编号
                {
                    last = i;
                }
                cur = i; // 移动光标
            }
        }
        for(int i = next[0]; i != 0; i = next[i])
            printf("%c", s[i]);
        printf("\n");
    }
    return 0;
}

最新文章

  1. No plugin found for prefix &#39;mybatis-generator&#39; in the current project
  2. HDU5456 Matches Puzzle Game(DP)
  3. 迷茫的it男,我该何去何从
  4. ABBYY FineReader 12对系统有哪些要求
  5. PHP数据库页面增删查
  6. 检查css没被引用上的问题
  7. EditTest输入类型设置
  8. (转载)异构数据库之间完全可以用SQL语句导数据
  9. JavaScript,Java,php的区分大小写问题
  10. 一招解决IE7无法访问https网页
  11. 解决zabbix图中出现中文乱码问题
  12. HTTP协议中返回代码302的情况
  13. 编写JsonResult封装JSON返回值(模板参阅)
  14. C GOTO使用示例
  15. 坦言spring中事务、重试、异步执行注解
  16. 如何判断NSDictionary是否包含某个键
  17. IIFE的形式、原理和常见写法
  18. vue---组件间通信
  19. routeros DDNS 动态域名更新IP
  20. Kivy / Buildozer VM Ubuntu不能连接到网络的问题解决

热门文章

  1. HDU2255-奔小康赚大钱-二分图最大权值匹配-KM算法
  2. Java应用程序项目的打包与发行(run.bat形式)
  3. GBK 编码时 url 中带中文参数的问题
  4. 彻底理解Toast原理和解决小米MIUI系统上没法弹Toast的问题
  5. 记、基于react-router的单页应用
  6. TrueSkill 原理及实现
  7. 如何解决xml在eclipse下的拼写报错
  8. 54-locate 简明笔记
  9. java 计算地球上两点间距离
  10. android中通话录音