Bài toán đếm số lần lặp của một mẫu xâu trong xâu gốc như sau
Bài toán đếm số lần lặp của một mẫu xâu trong xâu gốc như sau: Cho trước xâu gốc S và một xâu mẫu str. Yêu cầu cần tìm số lần lặp của xâu mẫu str trong xâu gốc S. Có hai kiểu tìm số lần lặp:
Giải sách bài tập Tin học 10 Bài 32: Ôn tập lập trình Python
Câu 32.3 trang 66 SBT Tin học 10: Bài toán đếm số lần lặp của một mẫu xâu trong xâu gốc như sau: Cho trước xâu gốc S và một xâu mẫu str. Yêu cầu cần tìm số lần lặp của xâu mẫu str trong xâu gốc S. Có hai kiểu tìm số lần lặp:
1 – Tìm số lần lặp xâu con có thể chồng lấn lên nhau.
2 – Tìm số lần lặp không chồng lấn của xâu con.
Ví dụ nếu xâu gốc là "12121341212100", xâu con mẫu là "121" thì:
- Số lần lặp có chồng lấn của str trong S là 4 lần.
- Số lần lặp không chồng lấn của str trong S là 2 lần.
Bài toán như sau: Cho trước các xâu kí tự S và str, hãy tìm số lần lặp không chồng lấn của xâu str trong xâu S.
Lời giải:
Chương trình có thể viết như sau:
S = "12121341212100"
str = "121"
n = len(S)
m = len(str)
count = 0
k = 0
Indx = 0
while k <= n-m and Indx >= 0:
Indx = S.find(str, k)
if Indx >= 0:
count = count + 1
k = Indx + m
print(count)