「只要我拉动绳线,你就得随之起舞。」          ——泰兹瑞
       泰兹瑞来到卡拉德许之后,由于他精湛的神器制造技术,可谓是过的如鱼得水。这次,他为自己打造了一个编辑器,称为威穆(Veim)。操作威穆时,有两种模式,具体操作如下。
Normal Mode
- 按下 i :进入 Insert Mode
- 按下 f :紧接着一个小写字母 char,若当前光标后(右)方有至少一个 char ,将光标移动到其所在位置,否则不移动。
- 按下 x :删除当前光标所在位的字符,后面的字符均会前移一格。
- 按下 h :将光标向左(前)移动一格,若无法移动就不移动。
- 按下 l :将光标向右(后)移动一格,若无法移动就不移动。
- 若按下了其他字符:无任何效果。
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| ≤ 10

5

s, t 均由小写拉丁字母组成。

有点尴尬,当时写了一个双向链表。然后,赛后,用STL写写就过了。
#include<cstdio>
#include<list>
#include<stdio.h>
using namespace std;
list<char>ss; int main()
{
char c;
while (c = getchar(), c != '\n'){
ss.push_back(c);
}
bool flag = ;
list<char>::iterator it = ss.begin();
while (c = getchar(), c != '\n')
{
if (flag)
{
switch (c)
{
case 'i':{flag = ; }
break;
case 'f':{
char x = getchar();
list<char>::iterator ki = ++it; --it;
for (; ki != ss.end(); ++ki){
if (*ki == x){
it = ki; break;
}
}
}
break;
case 'x':{ss.erase(it++); }
break;
case 'h':{--it; if (it == ss.end())++it; }
break;
case 'l':{++it; if (it == ss.begin())--it; }
break;
default:
break;
}
}
else{
if (c == 'e')flag = ;
else{
ss.insert(it, c);
}
}
}
for (list<char>::iterator it = ss.begin(); it != ss.end(); ++it)
{
printf("%c", *it);
}
printf("\n");
}

牛客小白D题(STL的迭代器)的更多相关文章

  1. 牛客网 牛客小白月赛1 E.圆与三角形-公式题

    E.圆与三角形   链接:https://www.nowcoder.com/acm/contest/85/E来源:牛客网     这个题把公式推一下, 发现就是1+sinA*r,sinA最大为1,所以 ...

  2. 树的最长链-POJ 1985 树的直径(最长链)+牛客小白月赛6-桃花

    求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简 ...

  3. 牛客网刷题(纯java题型 31~60题)

    牛客网刷题(纯java题型 31~60题) 重写Override应该满足"三同一大一小"三同:方法名相同,参数列表相同,返回值相同或者子类的返回值是父类的子类(这一点是经过验证的) ...

  4. 牛客网刷题(纯java题型 1~30题)

    牛客网刷题(纯java题型 1~30题) 应该是先extend,然后implement class test extends A implements B { public static void m ...

  5. 牛客网 牛客小白月赛5 I.区间 (interval)-线段树 or 差分数组?

    牛客小白月赛5 I.区间 (interval) 休闲的时候写的,但是写的心情有点挫,都是完全版线段树,我的一个队友直接就水过去了,为啥我的就超内存呢??? 试了一晚上,找出来了,多初始化了add标记数 ...

  6. 牛客网 牛客小白月赛1 I.あなたの蛙が帰っています-卡特兰数,组合数阶乘逆元快速幂

    I.あなたの蛙が帰っています   链接:https://www.nowcoder.com/acm/contest/85/I来源:牛客网     这个题有点意思,是卡特兰数,自行百度就可以.卡特兰数用处 ...

  7. 牛客网 牛客小白月赛1 H.写真がとどいています

    H.写真がとどいています   链接:https://www.nowcoder.com/acm/contest/85/H来源:牛客网     这个题数乱了,导致wa了好几次. 特别弱智,从A开始往上,就 ...

  8. 牛客网 牛客小白月赛1 F.三视图

    F.三视图   链接:https://www.nowcoder.com/acm/contest/85/F来源:牛客网     这个题自己想一下三维的,正视图和左视图中y轴为行数,x轴和z轴是列数,因为 ...

  9. 牛客网 牛客小白月赛1 D.多项式乘法

    D.多项式乘法   链接:https://www.nowcoder.com/acm/contest/85/D来源:牛客网 这个题想一下就能想出来了. 代码: 1 #include<iostrea ...

随机推荐

  1. dom操作------获取长/宽/距离等值的若干方法

    1.offsetLeft:获取元素边框以外至文档顶的距离:若其祖先元素有定位属性position则返回值为元素到该定位元素的距离,不包括祖先元素的三宽(padding,border,margin),且 ...

  2. JavaScript字符串常用方法

    toUpperCase():把一个字符串全部变为大写 toLowerCase():把一个字符串全部变为小写 indexOf():会搜索制定字符串出现的位置,有返回索引,没有返回-1 substring ...

  3. XML部分

    XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 两种形式:DTD以及schema: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展sc ...

  4. 【Java基础】11、java方法中只有值传递,没有引用传递

    public class Example { String testString = new String("good"); char[] testCharArray = {'a' ...

  5. python学习之老男孩python全栈第九期_day001作业

    1.使用while循环输入 1 2 3 4 5 6     8 9 10 count = 0 while count <= 9: count += 1 if count == 7:continu ...

  6. iphone 上微信的“复制链接”功能复制出来的是修改前的链接

    问题描述: 在 iOS 系统中,用微信打开了 A 页面的链接,然后由 A 页面进入 B 页面 在 B 页面打开微信右上角菜单,使用“复制链接”功能 最后粘贴出来的链接是 A 页面的链接 分析原因: 这 ...

  7. 将表格导出为excel

    <table id="tableExcel" border="1"> <tr> <th>零</th> <t ...

  8. 【代码笔记】Web-HTML-CSS

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  9. python数据探索

    数据质量分析 脏数据包括:缺失值:异常值:不一致的值:重复数据及含有特殊符号的数据: 1.缺失值处理 统计缺失率,缺失数 2.异常值处理 (1)简单统计量分析 (2)3Q原则 正态分布情况下,小概率事 ...

  10. tkinter中Radiobutton单选框控件(七)

    Radiobutton控件 由于本次内容中好多知识都是之前重复解释过的,本次就不做解释了.不太清楚的内容请参考tkinter1-6节中的内容 import tkinter wuya = tkinter ...