華為OD機(jī)試- 代碼編輯器
某公司為了更高效的編寫代碼,邀請你開發(fā)一款代碼編輯器程序。 程序的輸入為 已有的代碼文本和指令序列,程序需輸出編輯后的最終文本。指針初始位置位于文本的開頭。
支持的指令(X為大于等于0的整數(shù),word 為無空格的字符串):
FORWARD X 指針向前(右)移動X,如果指針移動位置超過了文本末尾,則將指針移動到文本未尾
BACKWARD X 指針向后(左)移動X,如果指針移動位置超過了文本開頭,則將指針移動到文本開頭
SEARCH-FORWARD word 從指針當(dāng)前位置向前查找 word 并將指針移動到word的起始位置,如果未找到則保持不變
SEARCH-BACKWARD word 在文本中向后查找 word 并將指針移動到word的起始位置,如果未找到則保持不變INSERT word 在指針當(dāng)前位置前插入word,并將指針移動到word的結(jié)尾
REPLACE word 在指針當(dāng)前位置替換并插入字符(刪除原有字符,并增加新的字符)
DELETE X 在指針位置刪除X個字符
輸入描述:
輸入的第一行為命令列表的長度K
輸入的第二行為文件中的原始文本接下來的K行,每行為一個指令
輸出描述:
編輯后的最終結(jié)果
補(bǔ)充說明:
文本最長長度不超過 256K
示例1
輸入:
1
ello
INSERT h
輸出:
hello
說明:在文本開頭插入
示例2
輸入:
2
hllo
FORWARD 1
INSERT e
輸出:
hello
說明:
在文本的第一個位置插入
示例3
輸入:
2
hell
FORWARD 1000
INSERT o
輸出:
hello
說明:
在文本的結(jié)尾插入
示例4
輸入:
1
hello
REPLACE HELLO
輸出:
HELLO
說明:替換
示例5
輸入:
1
hello
REPLACE HELLO WORLD
輸出:
HELLO WORLD
說明:
超過文本長度替換
示例6
輸入:
2
hell
FORWARD 100000
REPLACE o
輸出:
hello
說明:
超出文本長度替換
Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/130937132
Python實現(xiàn):https://renjie.blog.csdn.net/article/details/130978269
C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/127535253
JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/131080573
C實現(xiàn):https://renjie.blog.csdn.net/article/details/129190260