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

โปรแกรมนับสตริงย่อยความยาว k ที่เกิดขึ้นมากกว่าหนึ่งครั้งในสตริงที่กำหนดใน Python


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

ดังนั้น หากอินพุตเป็น s ="xxxyyy", k =2 เอาต์พุตจะเป็น 2

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

  • เห็น :=รายการใหม่
  • สำหรับฉันในช่วง 0 ถึงขนาด s - k ทำ
    • t :=สตริงย่อยของ s [จากดัชนี i ถึง i + k - 1]
    • ใส่ t ที่ส่วนท้ายที่เห็น
  • mp :=แผนที่สำหรับองค์ประกอบที่เห็นได้ชัดเจนและเหตุการณ์ที่เกิดขึ้น
  • ส่งคืนผลรวมของการเกิดขึ้นทั้งหมดของแต่ละองค์ประกอบใน mp โดยที่การเกิดขึ้นมากกว่า 1

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

ตัวอย่าง

class Solution:
   def solve(self, s, k):
      from collections import Counter
      seen = []
      for i in range(len(s) - k + 1):
         t = s[i : i + k]
         seen.append(t)
         s = Counter(seen)
      return sum(1 for x in s.values() if x > 1)
ob = Solution()
print(ob.solve("xxxyyy",2))

อินพุต

"xxxyyy",2

ผลลัพธ์

2