Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การลบสตริงย่อย "y" และ "xz" ในรอบเดียวด้วย Python

ภาพรวม

โจทย์ต้องการลบตัวอักษร 'y' และสตริงย่อย 'xz' ทั้งหมดออกจากสตริงที่กำหนดในการผ่านเพียงครั้งเดียว (conceptually) โดยใช้เมธอด replace() ของ Python

ตัวอย่าง

อินพุต: "xyxxzyyxxzx"

ขั้นตอน:

  1. ลบ 'xz' ทั้งหมด: "xyxyyx"
  2. ลบ '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