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

โปรแกรมค้นหาสตริงย่อย k-repeating สูงสุดจากลำดับใน Python


สมมติว่าเรามีลำดับของอักขระที่เรียกว่า s เราบอกว่าสตริง w คือ k-repeating string ถ้า w ถูกต่อกัน k ครั้งเป็นสตริงย่อยของลำดับ ค่า k-ซ้ำสูงสุดของ w จะเป็นค่าสูงสุด k โดยที่ w คือ k-ซ้ำตามลำดับ และถ้า w ไม่ใช่สตริงย่อยของลำดับที่กำหนด ค่า k-repeating สูงสุดของ w คือ 0 ดังนั้นหากเรามี s และ w เราต้องหาค่า k-repeating สูงสุดของ w ตามลำดับ

ดังนั้น หากอินพุตเป็น s ="papaya" w ="pa" ผลลัพธ์จะเป็น 2 เนื่องจาก w ="pa" มี 2 ครั้งใน "papaya"

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

  • Count:=จำนวน w ที่มีอยู่ใน s

  • ถ้า Count เท่ากับ 0 แล้ว

    • คืนค่า 0

  • สำหรับฉันอยู่ในช่วง นับถึง 0, ลดลง 1 ทำ

    • ถ้าฉันซ้ำ w มีอยู่ใน s แล้ว

      • กลับมา

ตัวอย่าง (Python)

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

def solve(s, w):
   Count=s.count(w)
   if Count==0:
      return 0
   for i in range(Count,0,-1):

      if w*i in s:
         return i

s = "papaya"
w = "pa"
print(solve(s, w))

อินพุต

"papaya", "pa"

ผลลัพธ์

2