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

โปรแกรมหาสตริงหลังลบตัวอักษรซ้ำ k ติดกันใน Python


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

เช่น s="paaappmmmma", k=3 ให้ "ma" (ลบ aaa→ppp→mmm)

ขั้นตอนการแก้ปัญหา

  • วนลูปจนไม่มีการลบ:
  • หาตัวอักษรที่มี k ตัวติดกันใน s
  • แทนที่ k ตัวนั้นด้วย ""
  • นับจำนวนครั้งที่ลบ ถ้า 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