问题 B: Broken Keyboard
时间限制: 1 Sec 内存限制: 128 MB

题目描述
You’re typing a long text with a broken keyboard. Well it’s not so badly broken. The only problem with the keyboard is that sometimes the “home” key or the “end” key gets automatically pressed (internally).

You’re not aware of this issue, since you’re focusing on the text and did not even turn on the monitor! After you finished typing, you can see a text on the screen (if you turn on the monitor).

In Chinese, we can call it Beiju. Your task is to find the Beiju text.
输入
There are several test cases. Each test case is a single line containing at least one and at most 100,000 letters, underscores and two special characters ‘[’ and ‘]’. ‘[’ means the “Home” key is pressed internally, and ‘]’ means the “End” key is pressed internally.
The input is terminated by end-of-file (EOF). The size of input file does not exceed 5MB.
输出
For each case, print the Beiju text on the screen.
样例输入 Copy
This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University
样例输出 Copy
BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University

题意: 给你若干字符串, 即输入的文本, 要求模拟光标乱动后产生的悲剧, ‘[’ --> home , ‘]’ --> end …

简单又有趣的一道题, 代码如下:

#pragma comment(linker, "/STACK:102400000,102400000")
#pragma GCC optimize(3, "Ofast", "inline")
#pragma GCC optimize(2)
#include <bits/stdc++.h>
#define RE register int
#define INF 0x3f3f3f3f
#define EPS 1e-8
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
typedef pair<int,int> P;
const double Pi = acos(-1);
const int mod = 1e9 + 7;
const int N = 1e6 + 10;
const ll inf = 1e15;
string s;int main() {//    freopen("test.txt", "r", stdin);ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);while (cin >> s) {bool prev_is_home = false; // 默认刚开始光标是在末尾的bool prev_is_end = true; // 个人感觉这俩flag要一个就狗了, 当然这样更清楚点string ans = "", tmp = "";for (auto & i : s) {if (i == '[') {prev_is_home = true;prev_is_end = false;ans = tmp + ans;tmp = "";} else if (i == ']') {prev_is_end = true;prev_is_home = false;ans = tmp + ans;tmp = "";} else {if (prev_is_home) {tmp += i;} else if (prev_is_end) {ans += i;}}} cout << ans << endl;}return 0;
}

垃圾键盘(bushi) (悲剧文本)相关推荐

  1. 例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988)

    例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988) 链表的应用 #include<iostream> # ...

  2. 破损的键盘(悲剧的文本)Java UVa11988

    破损的键盘(悲剧的文本)Java UVa11988 题目 分析 Java代码 还是算法作业之一,这次其实是一个acm题.网上查了一下,编号是UVa11988.废话不多说,直接上题. 题目 你有一个破损 ...

  3. 例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard,UVa 11988)—静态链表...

    问题描述: 你有一个破损的键盘.键盘上所有的键都可以正常工作,但有时候Home键或者End键会自动按下.你并不知道键盘存在这一问题,而是专心打稿子,甚至连显示器都没打开.当你打开显示器后,展现在你面前 ...

  4. UVA-11988 悲剧文本-静态链表

    你有一个破损的键盘.键盘上的所有键都可以正常工作,但有时Home键或者End键会自 动按下.你并不知道键盘存在这一问题,而是专心地打稿子,甚至连显示器都没打开.当你 打开显示器之后,展现在你面前的是一 ...

  5. 全局异步和主线程异步区别、改变PlaceHolder颜色、解决键盘弹起挡住文本框问题...

    1.全局异步执行耗时任务 dispatch_async(dispatch_get_global_queue(0, 0), ^{ }); 2.主线程异步刷新UI dispatch_async(dispa ...

  6. [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决?

    [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决? window.addEventListener("resize", function () {if ...

  7. 键盘事件实现文本框只能输入数字效果

    内容简介 键盘事件实现文本框只能输入数字效果 代码实战 function checkNum(e){var e=e||window.event;//兼容所有浏览器alert(e.target.tagNa ...

  8. android 文本输入区域,android – 键盘模糊输入文本区域

    我有一个显示在 http://ionicframework.com/docs/api/service/$ionicPopup/内的表单.问题是当光标放在最终输入(文本区域)内时,键盘显示但输入不会滚动 ...

  9. UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)

    进入本文之前建议你认真读一读我的另一篇博文:UIControl IOS控件编程 这样会起到事半功倍效果. 为什么要看另一篇关于UIControl的文章呢?因为UITextField继承自UIContr ...

最新文章

  1. 开启注册丨EMNLP 2021论文预讲会,邀你一起共赏自然语言处理学术盛宴(日程全公开)...
  2. 过去半年,二手楼市里的真实与残酷
  3. 互联网黄金十年的黄昏——是人工智能的黎明还是裁员的长夜
  4. Shell命令-文件及内容处理之more、less
  5. 2.3 《计算机组成原理》之浮点数的表示(基本格式、规格化[左规右规]、表示范围、IEEE754标准详解)
  6. C# 外接(网口)双摄像头视频获取
  7. Spring Boot实战笔记(一)-- Spring简介
  8. java中equals,hashcode和==的区别
  9. python之路-基础篇-002
  10. k8s学习: 部署动态 pvc(nfs-subdir-external-provisioner)
  11. 【转】前端开发中的MCRV模式
  12. mysql驱动5.1_mysql jdbc 驱动 5.1.26 官方最新版
  13. android 支付宝 6002,支付宝调用H5支付页面返回6002网络连接错误
  14. 机器学习理论知识的自学整理(持续更新,建议收藏)
  15. relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol may bind externally can not be used 【ARM64平台编译】
  16. 计算机组成原理课程笔记
  17. 条形码标签,实现产品追溯的最佳工具
  18. win10 你没有足够的权限执行此操作。
  19. 可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用
  20. 服务器系统控制台怎么打开,云服务器控制台怎么打开

热门文章

  1. 留学生日常英语46~50
  2. 同一个ssh key用在多台电脑上
  3. day063:红黑树、红黑规则
  4. ssm互联网金融 高级进阶 项目实战(完整)
  5. 机器学习讲座总结-读图时代的识图技术
  6. ETL工程师系列课程_Oracle数据库
  7. 几个python运维脚本
  8. 配置D3D8到vs2012项目中遇到的问题和解决过程
  9. 【虚幻】武器插槽:拾取武器
  10. tar 慢 加快_加快慢的Outlook 2007