สมมติว่าเรามีสตริง s และสตริงย่อย t เราต้องนับว่า t เกิดขึ้นกี่ครั้งใน s
ดังนั้น หากอินพุตเป็น s ="abaabcaabababaab", t ="aab" ผลลัพธ์จะเป็น 3 เนื่องจากสตริงย่อยคือ ab(aab)c(aab)aab(aab)
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- cnt :=0
- สำหรับ i ในช่วง 0 ถึง (ขนาด s - ขนาด t) ทำ
- หากสตริงย่อยของ s[จากดัชนี i ถึง i + ขนาดของ t - 1] เหมือนกับ t แล้ว
- cnt :=cnt + 1
- หากสตริงย่อยของ s[จากดัชนี i ถึง i + ขนาดของ t - 1] เหมือนกับ t แล้ว
- คืนสินค้า
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(s, t): cnt = 0 for i in range(0, len(s) - len(t) + 1): if s[i:i + len(t)] == t: cnt = cnt + 1 return cnt s = "abaabcaabababaab" t = "aab" print(solve(s, t))
อินพุต
"abaabcaabababaab", "aab"
ผลลัพธ์
3