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

Đếm chuỗi con bắt đầu bằng ký tự X và kết thúc bằng ký tự Y trong C ++

Chúng tôi được cung cấp chuỗi str. Mục đích là đếm số chuỗi con trong str có ký tự bắt đầu giống ký tự X và ký tự kết thúc giống ký tự Y. Ví dụ:nếu đầu vào là “artact” và X ='a' và Y ='t', thì chuỗi con sẽ là “nghệ thuật”, “hành động”, “tác phẩm nghệ thuật”. Số lượng là 3.

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

Đầu vào - str =”abcccdef” X =’a’ Y =’c’

Đầu ra −Số chuỗi con bắt đầu bằng ký tự X và kết thúc bằng Y là - 3

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

“abc”, “abcc”, “abccc”. Total 3.

Đầu vào - str =”tempest” X =’t’ Y =’t’

Đầu ra - Số chuỗi con bắt đầu bằng ký tự X và kết thúc bằng Y là - 3

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

“t” , “tempest” , “t”. Total 3

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

Chúng tôi sẽ duyệt qua chuỗi và số gia tăng của X. Nếu sau đó gặp Y, hãy thêm số X vào số chuỗi bắt đầu bằng X và kết thúc bằng Y.

  • Lấy chuỗi str. Tính độ dài dưới dạng str.size ().

  • Hàm X_Y (string str, int length, char X, char Y) nhận chuỗi str, các ký tự X, Y và trả về số lượng các chuỗi con của str bắt đầu bằng X và kết thúc bằng Y.

  • Lấy số lượng ban đầu là 0.

  • Lấy x_total làm số lượng ký tự X trong str.

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

  • Nếu str [i] ==X, số gia tăng của X trong str (x_total ++).

  • Nếu str [i] ==Y, hãy thêm x_total để đếm. Nếu không có X thì x_total sẽ là 0, ngược lại, Y là ký tự kết thúc của chuỗi con bắt đầu từ X.

  • Số lượt trả về là kết quả mong muốn.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int X_Y(string str, int length, char X, char Y){
   int count = 0;
   int x_total = 0;
   for (int i = 0; i < length; i++){
      if(str[i] == X){
         x_total++;
      }
      if (str[i] == Y){
         count = count + x_total;
      }
   }
   return count;
}
int main(){
   string str = "defaabbcchhkl";
   int length = str.size();
   char X = 'd';
   char Y = 'a';
   cout<<"Count of substrings that starts with character X and ends with character Y are: "<<X_Y(str, length, X, Y);
   return 0;
}

Đầu ra

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

Count of substrings that starts with character X and ends with character Y are: 2