اكتب كلاس باسم TextEditor يُنفذ عمليات أساسية لمحرر نصوص مع دعم Undo/Redo.
المطلوب:
- يجب تطبيق الدوال التالية:
write(text): تُضيف نص في نهاية المحررdelete(n): تحذف آخرnحرفundo(): تتراجع عن آخر عمليةredo(): تُعيد آخر عملية تم التراجع عنهاget_text(): تُرجع النص الحالي
مثال:
editor = TextEditor()
editor.write("hello")
editor.get_text() # "hello"
editor.write(" world")
editor.get_text() # "hello world"
editor.delete(6)
editor.get_text() # "hello"
editor.undo()
editor.get_text() # "hello world"
editor.redo()
editor.get_text() # "hello"
ملاحظات:
- استخدم مكدسين (undo stack و redo stack)
- عند إجراء عملية جديدة، امسح redo stack
- احفظ نسخة من الحالة قبل كل عملية