11602 - Editor   

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')

Sample Input  Download

Sample Output  Download

Tags




Discuss