-->
当前位置:首页 > 题库 > 正文内容

编程题:文本转换

Luz3年前 (2021-10-21)题库740
艾迪正在打一篇稿子,稿子只包含空格和26个小写字母。但他的键盘中有6个按键出现了故障,当按下k键时会使当前输入光标左移一个字符位置(如果光标在文档头则不左移),当按下z键时会使当前输入光标右移一个字符位置(如果光标在文档尾则不右移),当按下w键时会使当前输入光标移至文档开始位置,当按下s键时会使当前输入光标移至文档尾,当按下q键时会删除当前输入光标前的一个字符,当按下m键时会使输入光标在插入和改写(覆盖)状态切换(初始是插入状态)。现给定艾迪的原始稿子,请编写程序输出使用故障键盘打出的稿件,即屏幕最终显示的文本。

关于m键的解释:若当前输入状态是ab|cd(|表示光标):(1)若处在插入状态,则输入字符插入到光标后面,如输入x,则变为abx|cd;(2)若处在改写(覆盖)状态,则输入字符覆盖光标后面的字符,如输入x,则变为abx|d。(3)初始时为插入状态,按一下m键切换到改写状态,再按一下m键切换回插入状态,再按一下m键,切换到改写状态......以此类推。

### 输入格式:

输入为一行字符,字符个数不超过50000,包含a-z的小写字母及空格,表示艾迪的原始稿件。

### 输出格式:

输出为一行字符,表示在艾迪使用故障键盘实际打出来的文本。

### 输入样例1:

in
abckd



### 输出样例1:
out
abdc


### 输入样例2:

in
abckkzd



### 输出样例2:
out
abdc


### 输入样例3:

in
abcwd



### 输出样例3:
out
dabc


### 输入样例4:

in
abcwdse



### 输出样例4:
out
dabce


### 输入样例5:

in
abcq



### 输出样例5:
out
ab


### 输入样例6:

in
abckmd



### 输出样例6:
out
abd


### 输入样例7:

in
abckkmdme



### 输出样例7:
out
adec









答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。