1.某文本編輯軟件可以把所做的文本編輯操作記錄下來,并通過撤銷和恢復(fù)命令來撤銷一步操作或恢復(fù)一步撤銷的操作;也可以通過數(shù)字命令一次性撤銷最近的多步文本編輯操作,如圖所示。設(shè)計(jì)算法模擬該功能。約定:①操作記錄只存儲文本編輯指令;②存儲步數(shù)最多為5步,存滿后早期的操作記錄將被覆蓋;③程序只顯示操作記錄的可“撤銷”記錄,可“恢復(fù)”記錄不顯示;④一旦有新的文本編輯操作,則清空所有可“恢復(fù)”記錄。人機(jī)交互的指令如下(所有操作示例都基于上一個(gè)示例結(jié)果繼續(xù)操作):
類型 |
指令 |
示例 |
程序輸出結(jié)果 |
文本編輯 |
“T1”、“T2”、“T3”、“T4”表示四種文本編輯操作 |
對文本依次做“T1”、“T2”、“T3”、“T4”操作后,再輸入指令“T2” |
請輸入操作指令:T2指今B可用;指令F不可用可撤銷記錄:T1/T2/T3/T4/T2/ |
撤銷 |
“B”表示撤銷1步操作 |
輸入“B”結(jié)果:撤銷最近一步操作“T2” |
請輸入操作指令:B指今B可用:指令F可用可撤銷記錄:T1/T2/T3/T4/ |
數(shù)字“1”~“5”表示撤銷多步操作 |
輸入“3”結(jié)果:撤銷最近3步操作“T4”、“T3”和“T2” |
請輸入操作指令:3指令B可用;指令F可用可撤銷記錄:T1/ |
恢復(fù) |
“F”表示恢復(fù)1步撤銷的文本編輯操作 |
輸入“F”結(jié)果:恢復(fù)最近的1步文本編輯操作“T2” |
請輸入操作指令:F指令B可用;指令F可用可撤銷記錄:T1/T2/ |
文本編輯 |
在撤銷或恢復(fù)操作之后繼續(xù)新的文本編輯操作 |
輸入“T1”結(jié)果:可“恢復(fù)”記錄“T3”、“T4”、“T2”被清空 |
請輸入操作指令:T1指令B可用:指令F不可用可撤銷記錄:T1/T2/T1/ |
所有指令均可使用多次。每次輸入一個(gè)指令后都輸出“F”指令和“B”指令是否可用以及當(dāng)前可撤銷記錄。所有無效操作指令輸入后均提示“Input Error!”。輸入“#”則結(jié)束程序。請回答下列問題:
(1)由題意可知,當(dāng)依次執(zhí)行指令“T2”、“T2”、“T1”、“T3”、“T1”、“T4”,則最終可撤銷記錄共有
個(gè)。
(2)模擬實(shí)現(xiàn)該功能的Python代碼如下,請?jiān)趧澗€處填入合適的代碼。
(3)若加框處代碼誤寫為“d==”B””,會(huì)導(dǎo)致某些情況下無法得到符合判斷功能的結(jié)果。下列4組數(shù)據(jù)中能測試出這一問題的是
(多選,填字母)
選項(xiàng) |
依次輸入下列操作指令 |
A |
“B”? |
B |
“T1”、“B”、“B”? |
C |
“T1”、“1”、“B”?? |
D |
“T1”、“T2”、“B” |