刘汝佳的题目,悲剧文本 -_-|||

这里使用vector<string>容器倒置记录数据,然后从后面输出就能够了。

难度就是不知道这种文档究竟哪里是開始输出,故此使用动态管理内存的容器比較好做。

添加了io处理的O(n)算法也没有上榜,郁闷。

#include <stdio.h>
#include <vector>
#include <string>
using std::vector;
using std::string; const int MAX_B = 5120;
int id = 0, len = 0;
char buf[MAX_B]; inline char getFromBuf()
{
if (id >= len)
{
len = fread(buf, 1, MAX_B, stdin);
id = 0;
}
return buf[id++];
} int oid = 0;
int FLASH_P = MAX_B - 2;
char outBuf[MAX_B]; inline void charToBuf(char c)
{
if (oid > FLASH_P)
{
fwrite(outBuf, 1, oid, stdout);
oid = 0;
}
outBuf[oid++] = c;
} inline void flashLeft()
{
if (oid) fwrite(outBuf, 1, oid, stdout);
} int main()
{
char c;
while (c = getFromBuf())
{
if (!len) break;
vector<string> vstr(1);
int cur = 0;
int end = 0;
while (len && c != '\n')
{
if (c == '[')
{
vstr.push_back(string());
end++;
cur = end;
}
else if (c == ']')
{
if (vstr.size() > 1 && vstr[vstr.size()-1].empty())
end--, vstr.pop_back();
cur = 0;
}
else vstr[cur].push_back(c);
c = getFromBuf();
} for (int i = (int)vstr.size() - 1; i >= 0 ; i--)
{
for (int j = 0; j < (int)vstr[i].size(); j++)
{
charToBuf(vstr[i][j]);
}
}
charToBuf('\n');
}
flashLeft();
return 0;
}

UVa 11988 - Broken Keyboard (a.k.a. Beiju Text) 题解的更多相关文章

  1. UVA——11988 Broken Keyboard (a.k.a. Beiju Text)

    11988 Broken Keyboard (a.k.a. Beiju Text)You’re typing a long text with a broken keyboard. Well it’s ...

  2. UVA 11988 Broken Keyboard (a.k.a. Beiju Text)(链表)

    题目代号:UVA 11988 题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&pa ...

  3. UVa 11988 Broken Keyboard (a.k.a. Beiju Text)(链表)

    You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem wi ...

  4. 链表 UVA 11988 Broken Keyboard (a.k.a. Beiju Text)

    题目传送门 题意:训练指南P244 分析:链表模拟,维护链表的head和tail指针 #include <bits/stdc++.h> using namespace std; const ...

  5. UVa 11988 Broken Keyboard (a.k.a. Beiju Text)

    题目复制太麻烦了,甩个链接 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18693 直接模拟光标操作时间复杂度较高,所以用链 ...

  6. 暑假集训单切赛第二场 UVA 11988 Broken Keyboard (a.k.a. Beiju Text)(字符串处理)

    一开始不懂啊,什么Home键,什么End键,还以为相当于括号,[]里的东西先打印出来呢.后来果断百度了一下. 悲催啊... 题意:给定一个字符串,内部含有'['和']'光标转移指令,'['代表光标移向 ...

  7. UVA 11988 Broken Keyboard (a.k.a. Beiju Text) (链表,模拟)

    使用list来模拟就行了,如果熟悉list,那么这道题真是分分钟秒掉... list是双向循环链表,插入和删除操作非常快,缺点是不能像数组一样随机按下标读取. 一下是wiki上说明的相关函数:http ...

  8. uva - Broken Keyboard (a.k.a. Beiju Text)(链表)

    11988 - Broken Keyboard (a.k.a. Beiju Text) You’re typing a long text with a broken keyboard. Well i ...

  9. 破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988)

    破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988) 题意描述 你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下. ...

随机推荐

  1. 【SICP感应】3 级数据和符号数据

    在本书的第二章学习时,有一个问题我一直很困扰,那是2.2.4举例节.因为没有华丽的输出模式书,它只能有一个对的英文字母.两三个月的这浅浅的学校前Common Lisp同样是真实的,当.了非常赞的线条, ...

  2. Mac os 进行Android开发笔记(2)

    Mac OS X 下开发 Android  1> MAC OS Android环境搭建: 2>MAC OS  配置 Andoid ADB: 3>MAC OS 上进行Android真机 ...

  3. 基于visual Studio2013解决面试题之0804复杂链表

     题目

  4. jssdk微信图片上传功能

    /*wx.config({ debug: false, appId: data.appid, timestamp: data.timestamp, nonceStr: data.nonceStr, s ...

  5. 为什么必须是final的呢?

    一个谜团 如果你用过类似guava这种“伪函数式编程”风格的library的话,那下面这种风格的代码对你来说应该不陌生: 1 2 3 4 5 6 7 8 9 public void tryUsingG ...

  6. Unity3D NGUI,uGUI总结

    跪求官方UI系统(2014年11月底已出,用原生的比用NGUI放心) uGUI注意点 1.要防止多个canvas叠加点击穿透,canvas里面的graphics raycaster调整到恰当选项 2. ...

  7. 解决Java compiler level does not match the version of the installed Java project facet.问题

    其实之前遇到过Java compiler level does not match the version of the installed Java project facet.这个问题,因为当时没 ...

  8. asp.net ajax 检测用户名是否可用代码

    原文  asp.net ajax 检测用户名是否可用代码 .net ajax 检测用户名是否可用代码 <script type="text/网页特效" src="c ...

  9. 用scponly限制只能拷文件,不能登陆(MAC版)

    目的: 限制用户在特定目录(不能看到上级或者根目录) 只能执行scp或者sftp拷贝特别目录下的文件 不能SSH登陆,其它命令不能执行   机制: SSH登陆成功后,scponly会接管SHELL,并 ...

  10. qt新进程工作目录的设置(工作目录确实是被子进程继承的,但也可以设置)

    经过试验,qt启动一个新的进程时,这个进程的工作目录是继承父进程的,无论是通过start还是startDetached来启动. 其实对于linux系统,qt底层应该也是调用fork.exec之类的函数 ...