Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm dãy con có độ dài ba trong một chuỗi nhất định trong C ++

Chúng ta được cung cấp chuỗi str và một chuỗi con sub_str có độ dài 3. Mục đích là để tìm số lượng chuỗi con sub_str trong str. Ví dụ “hành động” là ba trong “cataract” (đục thủy tinh thể, đục thủy tinh thể, đục thủy tinh thể).

Hãy cho chúng tôi hiểu với các ví dụ.

Đầu vào - str =“dàn xếp” sub_str =”set”

Đầu ra - Số lượng một dãy con có độ dài ba trong một chuỗi đã cho là:5

Giải thích - Các chuỗi con sẽ -

 1. thiết lập tlement, 2. se t t lement, 3. se ttlemen t, 4. 5. giải quyết 

Đầu vào - str =“knowledge” sub_str =”now”

Đầu ra - Đếm một dãy con có độ dài ba trong một chuỗi đã cho là - 1

Giải thích - Các chuỗi con sẽ - biết gờ

Cách tiếp cận được sử dụng trong chương trình dưới đây như sau

Chúng ta sẽ duyệt qua chuỗi str bằng vòng lặp for. Nếu có bất kỳ str [i] ==sub_str [0] thì so sánh ký tự tiếp theo sub_str [1] với str [hiện tại i với i <độ dài], nếu khớp được tìm thấy ở chỉ mục j, thì so sánh ký tự cuối cùng sub_str [2] với str [hiện tại j đến j

  • Lấy chuỗi là str và chuỗi con là sub_str.

  • Hàm subset_occhood (string str, int length, string sub_str) nhận các chuỗi và trả về số lượng các chuỗi con giống như sub_str trong str.

  • Traverse str bằng vòng lặp for. Từ i =0 đến i

  • Nếu bất kỳ str [i] ==sub_str [0], ký tự đầu tiên được tìm thấy. Kiểm tra tiếp theo j =i + 1 đến j

  • Nếu bất kỳ str [j] ==sub_str [1], ký tự thứ hai khớp. Kiểm tra tiếp theo k =j + 1 đến k

  • Nếu str [k] ==sub_str [2]. Số lượng tăng dần.

  • Kết quả là số lượt trả lại.

Ví dụ

 #include  using namespace std; int subset_occhood (string str, int length, string sub_str) {int count =0; for (int i =0; i  

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

 Số lượng dãy con có độ dài ba trong một chuỗi nhất định là:19