为了更好的阅读体检,可以查看我的算法学习网
在线评测链接:P1488
题目内容
塔子哥玩腻了记事本,打算自己写一个文本编辑器。该编辑器有以下功能:
- 插入:
insert str
。表示将字符串 s t r str str插入到当前游标所处位置,同时游标移动到 s t r str str的右边。 - 删除:
delete len
。表示将游标左边长度为 l e n len len的字符串删除。要求该功能命令合法,即 l e n ≥ 0 len\ge 0 len≥0,如果 l e n < 0 len\lt0 len<0或者 l e n len len大于字符串长度,则认为输入非法,不进行操作。 - 移动:
move cnt
。将游标移动 c n t cnt cnt次,如果为负数,向左移动,为正数,向右移动。如果 c n t cnt cnt超过字符串左右边界,那么认为非法,不进行移动。 - 复制:
copy
。将游标左边字符串复制并插入到游标的右边。游标位置不变。
现在塔子哥已经写好了该文本编辑器,而你正在使用它,那么输入一系列命令后,会得到什么结果呢?
输入描述
每行仅输入一个功能对应的操作。如果为 e n d end end,代表操作结束。
初始时,字符串为空。游标位置为 0 0 0。
1 ≤ s t r . l e n g t h ≤ 40 1 \le str.length \le 40 1≤str.length≤40
1 ≤ l e n ≤ 40 1 \le len \le 40 1≤len≤40
− 40 ≤ c n t ≤ 40 -40 \le cnt \le 40 −40≤cnt≤40
调用insert,delete,move和copy的总次数不超过200次。
输出描述
最终的文本结果,注意,结果应当包含游标,用"|"表示。
样例
输入
insert test
insert pass
move 10
delete 4
insert fail
move -4
copy
end
输出
test|testfail