ภาพรวม
โจทย์ต้องการลบตัวอักษร 'y' และสตริงย่อย 'xz' ทั้งหมดออกจากสตริงที่กำหนดในการผ่านเพียงครั้งเดียว (conceptually) โดยใช้เมธอด replace() ของ Python
ตัวอย่าง
อินพุต: "xyxxzyyxxzx"
ขั้นตอน:
- ลบ 'xz' ทั้งหมด:
"xyxyyx" - ลบ 'y' ทั้งหมด:
"xxxx"
เอาต์พุต: xxxx
โค้ด Python
class Solution:
def solve(self, s):
return s.replace("xz", "").replace("y", "")
ob = Solution()
print(ob.solve("xyxxzyyxxzx"))
รายละเอียดการทำงาน
สตริงต้นฉบับ: x y x x z y y x x z x
- ลบ 'xz' (ตำแหน่ง 2-3 และ 8-9): เหลือ
x y x y y x x - ลบ 'y' ทั้งหมด (ตำแหน่ง 1, 3, 4): เหลือ
x x x x
หมายเหตุ
- ลำดับการ replace สำคัญ: ต้องลบ 'xz' ก่อน เพราะถ้าลบ 'y' ก่อน อาจสร้าง 'xz' ใหม่ได้
- เมธอด
str.replace(old, new)แทนที่ทุกครั้งที่พบ - เวลา O(n) พื้นที่ O(n)
ผลลัพธ์
xxxx