|
Time |
Memory |
| Case 1 |
1 sec |
32 MB |
| Case 2 |
1 sec |
32 MB |
| Case 3 |
1 sec |
32 MB |
| Case 4 |
1 sec |
32 MB |
| Case 5 |
1 sec |
32 MB |
Description
請使用linked list寫出一個簡單的Editor,並且有上下左右、backspace、newline、erase功能
Input
input只有一行且最後沒有換行符號('\n'),裡面會有char a~z, A~Z, 0~9, 空白(' '), 逗點(','), 句點('.'), 驚嘆號('!'), 問號('?'), 左括號('('), 右括號(')'),當輸入這些字元,則在游標所在位置新增這個字元,注意:游標一開始就會在第一行的開頭
以及特殊指令
- 上 (/u): 將游標往上一行移動,並將游標移動到與原本那一行所在的位置相同(如果移動後的這一行字元數不足,則將游標移動到最後面),若沒有上一行,則不做動作
- 下 (/d):將游標往下一行移動,並將游標移動到與原本那一行所在的位置相同(如果移動後的這一行字元數不足,則將游標移動到最後面),若沒有下一行,則不做動作
- 左 (/l):將游標向左移動一格,若已經移動到開頭,則不做動作 (注意: 若這行是 abc,游標是可以移動到a前面,輸入1可以得到這行為1abc)
- 右 (/r):將游標向右移動一格,若已經移動到結尾,則不做動作
- backspace (/b):刪除游標前的一個字元
- newline (/n):換行,將游標移動到新的這一行
- erase (/e):刪除一整行(包括這一行內的字元及這一行空行),並將游標移動到下一行的最後面(若要刪除的這一行為最後一行,則將游標移動到上一行的最後面),若全文只剩下自己這行,則只需將這一行的字元刪除即可
注意: 左移右移、backspace只會在這一行移動游標,而不會使游標移動到其他行
Output
根據input,輸出全文(每一行最後都須有換行符號'\n')
Tags