链接:https://ac.nowcoder.com/acm/contest/218/D
来源:牛客网

题目描述

「只要我拉动绳线,你就得随之起舞。」          ——泰兹瑞

泰兹瑞来到卡拉德许之后,由于他精湛的神器制造技术,可谓是过的如鱼得水。这次,他为自己打造了一个编辑器,称为威穆(Veim)。操作威穆时,有两种模式,具体操作如下。

Normal Mode

- 按下 i :进入 Insert Mode
- 按下 f :紧接着一个小写字母 char,若当前光标后(右)方有至少一个 char ,将光标移动到其所在位置,否则不移动。
- 按下 x :删除当前光标所在位的字符,后面的字符均会前移一格。
- 按下 h :将光标向左(前)移动一格,若无法移动就不移动。
- 按下 l :将光标向右(后)移动一格,若无牛客11.16练习赛法移动就不移动。
- 若按下了其他字符:无任何效果。

Insert Mode

- 按下非 e 小写字母 char :在光标当前位置前插入这个字母 char。
- 按下 e :退出 Insert Mode(进入 Normal Mode)。

(具体请见样例)

现在泰兹瑞的威穆中已经写入了一个字符串 s 。接下去泰兹瑞进行了一波操作(按下了若干按键),他的按键序列为 t 。现给出 s 和 t ,求这波操作之后威穆内留下的字符串。

输入描述:

两行,第一行字符串 s ,第二行字符串 t 。

输出描述:

一行,威穆里最后留下的字符串。

示例1

输入

复制

applese
xfllhlia

输出

复制

pplaese

说明

- 初始时,字符串为 ,威穆处于 Normal Mode 。下划线表示光标所在位置。
- 第一步操作为 x ,删除当前光标所在位的字符,并且光标后移一格。字符串变为  。威穆仍处于 Normal Mode。
- 下一步操作为 f ,之后跟有一个字符 `l` 。光标后存在字符 `l` ,故移动到该位置。字符串变为  。威穆仍处于 Normal Mode。
- 下一步操作为 l ,光标后移一格。字符串变为  。威穆仍处于 Normal Mode。
- 下一步操作为 h ,光标前移一格。字符串变为  。威穆仍处于 Normal Mode。
- 下一步操作为 l ,光标后移一格。字符串变为  。威穆仍处于 Normal Mode。
- 下一步操作为 i ,威穆进入 Insert Mode。字符串仍为  。
- 下一步操作为 a ,而非 e ,故插入字符 a 。字符串变为  。

示例2

输入

复制

pppp
iaefpfpia

输出

复制

appapp

备注:

1 ≤ |s|, |t| ≤ 105
s, t 均由小写拉丁字母组成。

----------------------------------------------------

题意上面很清楚,就是通过子串的每一个字符操作主串也就是个模拟,

主串由vector存,删除插入 直接用STL 里的方法

但有两个坑(emmm,或许是我太急躁把没看清题)

意思 f 后若有一个 char 则在 主串光标后找第一个出现此 char 的位置,光标移到此处。

第一个就是插入完以后 光标 到插入位置的下一位

代码如下:

#include<cstdio>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#include<vector>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=1e5+5;
vector<char>s;
int flag=0;//初始为 Nor mode
int main(){string ss;string t;cin>>ss;int l=ss.size();//每次更新 for(int i=0;i<l;i++){s.push_back(ss[i]);} cin>>t;int p=0;int len=t.size();
for(int k=0;k<len;k++){if(!flag){if(t[k]=='i'){flag=1;}else if(t[k]=='f'){int r=k+1;if(r<=len-1){char ch=t[r];for(int j=p+1;j<l;j++){if(s[j]==ch){p=j;break;}}k++;    }}else if(t[k]=='x'){s.erase(s.begin()+p);l=s.size();}else if(t[k]=='h'){if(p!=0) p--;}else if(t[k]=='l'){if(p!=l-1) p++;}}else{if(t[k]=='e'){flag=0;}else{s.insert(s.begin()+p,t[k]);p++;l=s.size();}   }       }for(int i=0;i<s.size();i++){cout<<s[i];}return 0;
}

神器大师泰兹瑞与威穆相关推荐

  1. 牛客练习赛31: D. 神器大师泰兹瑞与威穆(链表)

    链接:https://ac.nowcoder.com/acm/contest/218/D 来源:牛客网 题目描述 「只要我拉动绳线,你就得随之起舞.」          --泰兹瑞 泰兹瑞来到卡拉德许 ...

  2. 高红梅:第三章 海明威社会身份的定位 第一节 文学梦与作家身份的认同

    第三章  海明威社会身份的定位 海明威一生都在世界各地旅行,其足迹遍及欧洲.非洲.美洲和亚洲,有世界公民的美誉.正如学者卡洛斯·贝克(Baker ,Carlos)所言,"早在他五十五岁荣获诺 ...

  3. 铁威马F2-NAS2评测(家用云存储NAS)

    为什么80%的码农都做不了架构师?>>>    公司需要一台共享服务器,公司没有专门的机房,搞一台服务器太吵.决定找一台nas服务器,找到了铁威马,查找了相关资料,发现这个产品不仅仅 ...

  4. 泰拉瑞亚安装、运行教程

    首先获取到泰拉瑞亚安装包,需要的可以点赞收藏,私信我就可以,感激不尽啦: 点击Setup安装,但是会发现安装完成后,泰拉瑞亚依然打不开,这是由于缺少两个应用程序:NET fremwork和XNA fr ...

  5. 阿弥陀佛和他的极乐世界

    阿弥陀佛和他的极乐世界 陈义孝居士著 一.极乐世界的有无问题 二.十方赞誉的阿弥陀佛 三.美妙绝伦的极乐世界 四.说之不尽的往生利益 五.特色如云的念佛法门 六.净土三经的特别提示 七.认清我们的娑婆 ...

  6. 好莱坞经典十大战争电影排行榜 男人必看十大战争片

    好莱坞的电影制作精良,冠绝全球,好莱坞的战争片更是气势恢宏场面宏大,小编辛苦搜集了十部口碑和票房都很高的经典美国好莱坞战争大片分享给大家,有一战时期的经典电影战马,还有关于二战和越战方面的电影,有时间 ...

  7. 把我给另外一个朋友的炒股劝告发给你一遍,希望你可以得到帮助!

    把我给另外一个朋友的炒股劝告发给你一遍,希望你可以得到帮助! 想要学习的网站可以去理想论坛和淘股吧,上面有许多可以学习的贴子. 要看的书挺多,而且枯燥,你确定你可以看下来吗? 下面是一些最为经典的书籍 ...

  8. 四月新影片扎堆 即将上映7部电影大推荐

    <美国队长2>再掀正义战斗 四月到来,天气也变得越来越暖和,过去的严冬伴随着浓重的雾霾阻挡了大多数人出游的脚步,即便是周末也会窝在自己的小屋不愿动弹,围坐在客厅的沙发观看电视,或者坐在电脑 ...

  9. 3D乌托邦:论CRPG游戏的浸没体验

    一.从冷媒介到热媒介:CRPG游戏的诞生 电脑角色扮演类游戏(Computer Role Playing Games),简称CRPG游戏,是一类以电脑为媒介.以角色扮演为形式的类型游戏.玩家通过第一人 ...

最新文章

  1. [watevrCTF 2019]Baby RLWE
  2. C语言中文件的基本操作函数fprintf和fscanf实例介绍
  3. 一个设计反模式——究竟什么是轮子理论
  4. 【9303】平面分割
  5. linux命令行可以看图片吗,活久见!Linux命令行居然也可以用来查看图像?
  6. 循环数组中找查找某个数值
  7. windows10 搜索桌面搜索功能失效的解决
  8. 网管面试题1-windows
  9. 生物信息学 | GEO介绍与安装
  10. 标准工时分析怎么做?精益生产下的VIOOVI 标准工时分析软件
  11. 记录为小电机安装一个5012编码器(多摩川协议)的过程
  12. 薪酬体系怎么设计?看看这家把薪酬公开的公司怎么说
  13. MarkDown 语法手册
  14. 处nm是什么意思_CPU的nm是什么意思
  15. MarkDown 语法大全查询
  16. 浅谈互联网一件新机(改机)发展历史
  17. 成熟的项目架构设计是什么样的?
  18. A001-185-2521-李子泓
  19. SpringBoot 全局事务配置
  20. (转载)常见的差分(动)阻抗计算模型(CITS25 软件)

热门文章

  1. csapp attack lab
  2. android 模拟器 横排,超强横向全面评测!且待揭开安卓模拟器迷雾重重
  3. HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
  4. windows 10远程连接ubuntu 18.04 Gnome桌面:NoMachine工具使用详解
  5. RT-LAB使用手册
  6. java 正则 惰性匹配_js正则表达式惰性匹配和贪婪匹配用法分析
  7. 分布式理论(六)—— Raft 算法
  8. 用eclipse读spark源码
  9. 分布式系统技术难题--异地多活
  10. WebDriverPool浏览器驱动池 减少驱动频繁打开和关闭引起的资源损耗