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

โปรแกรมค้นหาสตริงหลังจากลบอักขระที่ซ้ำกัน k ตัวติดต่อกันใน python


สมมติว่าเรามีสตริง s และอีกค่าหนึ่งคือ k เราจะลบอักขระที่ซ้ำกันที่เก่าที่สุด k ตัวที่ซ้ำกัน และส่งคืนสตริงสุดท้าย

ดังนั้น หากอินพุตเป็น s ="paaappmmmma" k =3 เอาต์พุตจะเป็น "ma" เช่นเดียวกับเมื่อเราลบ "a" สามรายการเพื่อให้ได้ "pppmmmma" จากนั้นเราลบสาม "p" เพื่อรับ "mmmma" จากนั้นลบสามในสี่ "m" เพื่อรับ "ma"

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้:

  • ทำตามขั้นตอนต่อไปนี้อย่างไม่สิ้นสุด ทำ
    • นับ :=0
    • chars :=รับอักขระที่ไม่ซ้ำจาก s
    • สำหรับอักขระ c แต่ละตัวใน chars ทำ
      • ถ้า k ต่อเนื่อง c อยู่ใน s แล้ว
        • ลบ k ต่อเนื่อง c จาก s
        • นับ :=นับ + 1
    • ถ้าการนับเท่ากับ 0 แล้ว
      • ออกมาจากวงจร
  • คืนสินค้า

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น:

ตัวอย่าง

class Solution:
   def solve(self, s, k):
      while True:
         count = 0
         chars = set(s)
         for c in chars:
            if c * k in s:
               s = s.replace(c * k, "")
               count += 1
         if count == 0:
            break
      return s

ob = Solution()
s = "paaappmmmma"
k = 3
print(ob.solve(s, k))

อินพุต

"paaappmmmma", 3

ผลลัพธ์

ma