Chúng ta đã biết phương thức count() sẽ tính số lần lặp không chồng lấn của một xâu con trong

Chúng ta đã biết phương thức count() sẽ tính số lần lặp không chồng lấn của một xâu con trong xâu mẹ (nếu không có thì trả về 0). Ví dụ: xâu con “aba” sẽ lặp không chồng lấn trong xâu “abababacdaba” 3 lần.

>>> Str = "abababacdaba"

>>> sub = "aba"

>>> Str.count(sub)

3

Nhưng nếu tính theo cách có chồng lấn thì xâu con sub sẽ lặp 4 lần trong xâu mę Str.

Bài toán: Dữ liệu đầu vào được cho trong tệp văn bản String.inp có dạng sau: – Dòng đầu tiên ghi xâu con sub.

− n dòng tiếp theo, mỗi dòng là một xâu kí tự bất kì.

Kết quả được lưu trong tệp String.out bao gồm n dòng, mỗi dòng tương ứng là kết quả số lần lặp không chồng lấn của xâu con sub trong xâu tại dòng tương ứng.

Trả lời

Hàm quan trọng nhất của chương trình là hàm scount(sub,Str) đếm số lần lặp không chồng lấn của xâu con sub trong xâu mẹ Str. Có rất nhiều cách viết hàm này, sau đây là một cách.

Chúng ta đã biết phương thức count() sẽ tính số lần lặp không chồng lấn của một xâu con trong (ảnh 1)
Chúng ta đã biết phương thức count() sẽ tính số lần lặp không chồng lấn của một xâu con trong (ảnh 2)