求該題程式碼
輸入說明
第一行輸入一個整數M, N, M是原始文章行數,N是編輯指令數。
其後M行,每一行為原始句子,以空白隔開每個字
其後N行,每一行的第一個字串為編輯指令,
隨後為對應的控制字串,以空白隔開:
Note:
文章不會包含標點符號,
第幾行、第幾個字都是從1開始算;
PASTE必會在COPY後使用,無需考慮直接PASTE的情形;
INSERT,REPLACE 請注意要插入/替換文章中所有符合的字
ADD_W_FRONT i n word # 在第i行中,第n個字前面加上word
ADD_W_AFTER i n word # 在第i行中,第n個字後面加上word
ADD_S_FRONT i sentence # 在第i行前面加入一句sentence (多個word以空白隔開)
ADD_S_AFTER i sentence # 在第i行後面加入一句sentence (多個word以空白隔開)
INSERT_FRONT key word # 在文章中所有key前面加上word
INSERT_AFTER key word # 在文章中所有key的後面加上word
DEL_W i n # 刪除第i行中,第n個字
DEL_L i # 刪除第i行 (請注意其他行的行數,可能被此指令影響)
REPLACE old new # 將文章中所有old替換為new (區分大小寫)
COPY_L i # 複製第i行
COPY i n # 複製第i行的第n個字
PASTE_FRONT i n # 貼上於第i行,第n個字前
PASTE_AFTER i n # 貼上於第i行,第n個字後
COUNT # 統計,並輸出文章總單字數
輸出說明
輸出編輯完成之文章
範例:
輸入:
5 10
Morning mom # 第1行
Morning dear # 第2行
What is for breakfast # 第3行
Here are your eggs and milk # 第4行
Looks good # 第5行
INSERT_FRONT Morning Good # 1 -> Good Morning mom 2 -> Good Morning dear
REPLACE Morning night # 1 -> Good night mom 2 -> Good night dear
DEL_L 1 # 刪除第一行,其他行數-1
DEL_W 1 3 # 刪除 dear 1 -> Good night
ADD_S_AFTER 4 thanks mom # 4 -> Looks good thanks mom
COPY_L 1 # copy “Good night”
PASTE_AFTER 4 4 # 4-> Looks good thanks mom Good night
COPY 4 4 # copy “mom”
PASTE_FRONT 2 1 # 2 -> mom What is for breakfast
COUNT # 輸出文章單字數
輸出:
19
Good night
mom What is for breakfast
Here are your eggs and milk
Looks good thanks mom Good night
--------------
輸入 1
4 7
Loving can hurt
Loving can hurt sometimes
It is the only thing makes us feel alive
we keep this love in a photograph
DEL_L 1
DEL_L 2
ADD_S_FRONT 2 Maybe
INSERT_FRONT hurt not
COPY 1 2
PASTE_AFTER 2 2
COUNT
輸出 1
14
Loving can not hurt sometimes
Maybe we can keep this love in a photograph
----------------
輸入 2
5 6
I have a
pen
apple
Ugh
apple
COPY_L 1
DEL_L 1
PASTE_FRONT 1 1
PASTE_FRONT 2 1
COPY 1 4
PASTE_AFTER 4 1
輸出 2
I have a pen
I have a apple
Ugh
apple pen
--------------------
輸入 3
5 15
Once I was seven years old
my mama told me
mama love me
my
and my
COPY_L 3
REPLACE mama daddy
INSERT_AFTER daddy and
INSERT_AFTER and mama
PASTE_AFTER 4 1
PASTE_AFTER 5 3
DEL_W 4 2
DEL_W 5 2
DEL_W 5 3
ADD_W_AFTER 4 1 sister
ADD_W_AFTER 5 2 grandma
ADD_W_AFTER 5 5 ha
COPY 5 6
PASTE_FRONT 5 6
PASTE_AFTER 5 6
輸入 3
Once I was seven years old
my daddy and mama told me
daddy and mama love me
my sister love me
and my grandma love me ha ha ha
-------------------
輸入 4
6 15
You lives in a pineapple in the sea
Who
Absorbent and yellow and porous is he
Spongebob
nautical nonsense be something
Squarepants
DEL_W 1 6
ADD_W_FRONT 5 1 If
ADD_W_AFTER 1 5 under
COPY 6 1
PASTE_AFTER 4 1
COPY 4 1
PASTE_FRONT 6 1
COPY 6 2
PASTE_AFTER 2 1
DEL_W 2 1
COPY 4 1
PASTE_FRONT 2 1
REPLACE You Who
ADD_S_AFTER 5 you wish
COUNT
輸出 4
28
Who lives in a pineapple under the sea
Spongebob Squarepants
Absorbent and yellow and porous is he
Spongebob Squarepants
If nautical nonsense be something you wish
Spongebob Squarepants
text = []
order = []
def ADD_W(i,n,word,sub):
#这里我把加单词操作整合到一起了
i = int(i)
n = int(n)
word_list = text[i-1].split(' ')
if sub == 'ADD_W_FRONT':
word_list.insert(n-1,word)
else:
word_list.insert(n, word)
new = " ".join(word_list)
text[i-1] = new
return text
def ADD_S(i, sentence,sub):
#这里我把加句子操作整合到一起了
i = int(i)
if sub == 'ADD_S_FRONT':
text[i-1]=sentence+' '+text[i-1]
else:
text[i-1]=text[i-1]+' '+sentence
return text
def INSERT(key, word,sub):
#这里我把插入操作整合到一起了
for index1,m in enumerate(text):
word_list = m.split(' ')
for index2,n in enumerate(word_list):
if n == key:
if sub == 'INSERT_FRONT':
word_list.insert(index2,word)
else:
word_list.insert(index2 + 1, word)
text[index1] = ' '.join(word_list)
return text
def DEL_W(i,n):
i = int(i)
n = int(n)
word_list = text[i-1].split(' ')
word_list.pop(n-1)
text[i-1] = ' '.join(word_list)
return text
def DEL_L(i):
i = int(i)
text.pop(i-1)
return text
def REPLACE(old,new):
for index1,m in enumerate(text):
word_list = m.split(' ')
for index2,n in enumerate(word_list):
if n == old:
word_list[index2] = new
text[index1] = ' '.join(word_list)
return text
def COPY_L(i):
i = int(i)
return text[i-1]
def COPY(i,n):
i = int(i)
n = int(n)
content = text[i-1].split(' ')
return content[n-1]
def PASTE(i,n,word,sub):
#这里我把粘贴操作整合到一起了
i = int(i)
n = int(n)
content = text[i-1].split(' ')
if sub == 'PASTE_FRONT':
content.insert(n-1,word)
else:
content.insert(n,word)
text[i-1] = ' '.join(content)
return text
def Count():
all = []
for m in text:
word_list = m.split(' ')
for n in word_list:
all.append(n)
print(len(all))
num = input('输入数字:').split(' ')
row_num = int(num[0])
ins_num = int(num[1])
for i in range(row_num):
content = input('输入内容:')
text.append(content)
for i in range(ins_num):
instruction = input('输入指令:')
order.append(instruction)
copy_list = []
#存上一次拷贝命令
copy_result = []
#存上一次拷贝的东西
for i in order:
order_list = i.split(' ')
if order_list[0][:5] == 'ADD_W':
result = ADD_W(order_list[1],order_list[2],order_list[3],order_list[0])
elif order_list[0][:5] == 'ADD_S':
result = ADD_S(order_list[1],i[14:],order_list[0])
elif order_list[0][0] == 'I':
result = INSERT(order_list[1],order_list[2],order_list[0])
elif order_list[0] == 'DEL_W':
result = DEL_W(order_list[1],order_list[2])
elif order_list[0] == 'DEL_L':
result = DEL_L(order_list[1])
elif order_list[0] == 'REPLACE':
result = REPLACE(order_list[1],order_list[2])
elif order_list[0] == 'COPY_L':
st = COPY_L(order_list[1])
copy_list.append(order_list[0]+order_list[1])
copy_result.append(st)
elif order_list[0] == 'COPY':
st = COPY(order_list[1],order_list[2])
copy_list.append(order_list[0]+order_list[1]+order_list[2])
copy_result.append(st)
elif order_list[0][0] == 'P':
if copy_list[-1][-2] == 'L':
result = PASTE(order_list[1],order_list[2],copy_result[-1],order_list[0])
elif copy_list[-1][-3] == 'Y':
s = int(copy_list[-1][-2])
t = int(copy_list[-1][-1])
result = PASTE(order_list[1],order_list[2],copy_result[-1],order_list[0])
else:
Count()
for i in result:
print(i)
这次的绝对没有问题了,完全符合你的要求,没有错误
为什么你们发的题目都是繁体字
能发中文简体吗?
https://www.cnblogs.com/kong-gu/p/12650222.html
你看看这个对你有帮助麽
需要自定义各类函数的功能,然后按照行分隔进行读取字符串