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

Kiểm tra xem một chuỗi có tuân theo mẫu anbn hay không trong C ++

Giả sử, chúng ta được cung cấp một chuỗi chỉ gồm hai chữ cái a và b. Chúng ta phải tìm xem chuỗi có dạng anbn hay không, hay nói cách khác là nó chứa n số a theo sau là n số b. Nếu đúng, chúng tôi trả về 1, ngược lại là 0.

Vì vậy, nếu đầu vào là "aaaaaaaaaaaabbbbbbbbbbbbbb", thì đầu ra sẽ là true.

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

  • length:=chiều dài của input_string
  • để khởi tạo i:=0, khi i
  • nếu input_string [i] không bằng 'a', thì -
    • Ra khỏi vòng lặp
  • nếu i * 2 không bằng độ dài, thì -
    • trả về false
  • để khởi tạo j:=i, khi j
  • nếu input_string [j] không bằng 'b', thì -
    • trả về false
  • trả về true
  • Ví dụ (C ++)

    Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    #include <bits/stdc++.h>
    using namespace std;
    bool solve(string input_string) {
       int length = input_string.length();
       int i;
       for (i = 0; i < length; i++)
          if (input_string[i] != 'a')
             break;
          if (i * 2 != length)
             return false;
          for (int j = i; j < length; j++)
             if (input_string[j] != 'b')
                return false;
       return true;
    }
    int main() {
       string input_string = "aaaaaaaaaaaabbbbbbbbbbbb";
       cout << solve(input_string)<< endl;
       return 0;
    }

    Đầu vào

    "aaaaaaaaaaaabbbbbbbbbbbb"

    Đầu ra

    1