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

Tìm số chuỗi con theo thứ tự bảng chữ cái trong C ++

Giả sử chúng ta có một chuỗi có độ dài n. Nó chỉ chứa các chữ cái viết hoa. Chúng ta phải tìm số chuỗi con có ký tự xảy ra theo thứ tự bảng chữ cái. Kích thước tối thiểu của chuỗi con sẽ là 2. Vì vậy, nếu chuỗi giống như:“REFJHLMNBV” và số lượng chuỗi con là 2, chúng là “EF” và “MN”.

Vì vậy, để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau -

  • Kiểm tra xem str [i] + 1 có giống với str [i + 1] hay không, nếu có, sau đó tăng kết quả lên 1 và lặp lại chuỗi cho đến ký tự tiếp theo không theo thứ tự bảng chữ cái, nếu không, hãy tiếp tục.

Ví dụ

#include<iostream>
using namespace std;
int countSubstr(string main_str) {
   int res = 0;
   int n = main_str.size();
   for (int i = 0; i < n - 1; i++) {
      if (main_str[i] + 1 == main_str[i + 1]) {
         res++;
         while (main_str[i] + 1 == main_str[i + 1]) {
            i++;
         }
      }
   }
   return res;
}
int main() {
   string str = "REFJHLMNBV";
   cout << "Number of substrings: " << countSubstr(str);
}

Đầu ra

Number of substrings: 2