官方解答 · 置頂Python
官方解答|標籤狀態盒
官方解答
Python #438:標籤狀態盒
解題規則
編輯器用物件保存原始標籤與目前文字,請完成指定編輯與檢視。
TextBox 保存最初文字 original 與目前文字 text。solve 用輸入 text 建立物件,再呼叫 edit(extra) 一次,規則為「在目前文字尾端接上 extra」。report 回傳目前文字。
處理步驟
TextBox 保存 original、text;edit 依指定規則更新 text 一次;report 讀取目前文字及必要的 original,不自動清除空白。
為何正確
物件屬性保存當前狀態;負責更新的方法依當時屬性完成一次更新與必要的快照,讀值步驟只讀取目前屬性。初始化及逐次更新維持題目指定的狀態,因此最後回傳的資料符合指定摘要。
邊界與注意事項
本題輸入範圍:每段0~30字元,只含ASCII文字。除非題目明確要求,不自動移除空白。 除題目指定的篩選或移除外,保留原資料的重複項與順序;使用切片或明確判斷安全處理允許的空資料。 需要清單快照時另外複製,兩個物件的清單與計數彼此獨立。
範例追蹤
依參數順序 text, extra 傳入 ["","A2"]。關鍵中間資料為 box = {'original': '', 'text': 'A2'}。最後回傳 'A2'。結果由 return 回傳,不使用 print。
複雜度
設輸入及必要輸出的總大小為 n;複製、轉換或掃描最壞時間 O(n),保存中間資料與回傳結果最壞需要 O(n) 空間。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
class TextBox:
def __init__(self, text):
self.original = text
self.text = text
def edit(self, extra):
self.text = self.text + extra
def report(self):
return self.text
def solve(text, extra):
box = TextBox(text)
box.edit(extra)
return box.report()
留言討論 0
登入 後就能留言,一起討論不同的寫法。