在线OJ
已购买本专栏用户,请私信博主开通账号,在线刷题!!!
运行出现 Runtime Error 0Aborted,请忽略
华为OD统一考试A卷+B卷 新题库说明
2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷)。
你收到的链接上面会标注A卷还是B卷。请注意:根据反馈,目前大部分收到的都是B卷。但是仍有概率抽到A卷。
A卷对应2023的新题库(2022Q4 20223Q1) B卷对应20022部分考题以及新出的题目
专栏:2023华为OD机试(A卷+B卷)(C++JavaJSPy)
题目描述:代码编辑器
某公司为了更高效的编写代码,邀请你开发一款代码编辑器程序。
程序的输入为 已有的代码文本和指令序列,程序需输出编辑后的最终文本。指针初始位置位于文本的开头。
支持的指令(X为大于等于0的整数, word 为无空格的字符串):
- FORWARD X 指针向前(右)移动X,如果指针移动位置超过了文本末尾,则将指针移动到文本末尾
- BACKWARD X 指针向后(左)移动X,如果指针移动位置超过了文本开头,则将指针移动到文本开头
- SEARCH-FORWARD word 从指针当前位置向前查找 word 并将指针移动到word的起始位置,如果未找到则保持不变
- SEARCH-BACKWARD word 在文本中向后查我 word 并将指针移动到word的起始位置,如果未找到则保持不变
- INSERT word 在指针当前位置前插入word,并将指针移动到word的结尾
- REPLACE word 在指针当前位置替换并插入字符(删除原有字符,并增加新的字符)
- DELETE X 在指针位置删除X个字符
输入描述
输入的第一行为命令列表的长度K
输入的第二行为文件中的原始文本
接下来的K行,每行为一个指令
文本最长长度不超过 256K
输出描述
编辑后的最终结果
ACM输入输出模式
如果你经常使用Leetcode,会知道letcode是不需要编写输入输出函数的。但是华为OD机考使用的是 ACM 模式,需要手动编写输入和输出。
所以最好在牛-客上提前熟悉这种模式。例如C++使用cin/cout
,python使用input()/print()
。JavaScript使用node的readline()
和console.log()
。Java 使用sacnner/system.out.print()
用例1
输入
1
ello
INSERT h
输出
hello
说明
在文本开头插入
用例2
输入
2
hllo
FORWARD 1
INSERT e
输出
hello
说明
在文本的第一个位置插入