สมมติว่าเรามีลำดับของอักขระที่เรียกว่า 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