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

Số phần tử lớn hơn ở phía bên phải trong một chuỗi trong C ++

Cho một chuỗi, chúng ta phải đếm số phần tử lớn hơn ở phía bên phải của mỗi ký tự. Hãy xem một ví dụ.

Đầu vào

string = "abc"

Đầu ra

2 1 0

Có 2 phần tử lớn hơn a ở phía bên phải của nó.

Có 1 phần tử lớn hơn b ở phía bên phải của nó.

Có 0 phần tử lớn hơn c ở phía bên phải của nó.

Thuật toán

  • Khởi tạo chuỗi.

  • Khởi tạo một mảng để theo dõi số lượng.

  • Viết hai vòng lặp để lặp qua chuỗi.

    • Lấy một ký tự tại một thời điểm và so sánh nó với tất cả các ký tự sau nó.

    • Tăng số ký tự tương ứng trong mảng đếm nếu phần tử hiện tại nhỏ hơn phần tử tiếp theo.

  • In số lượng tất cả các ký tự.

Thực hiện

Sau đây là cách thực hiện thuật toán trên trong C ++

Implementation

Following is the implementation of the above algorithm in C++

#include <bits/stdc++.h>
using namespace std;
void countCharNextLargerElementsCount(string str) {
   int len = str.length(), count[len];
   for (int i = 0; i < len; i++) {
      count[i] = 0;
   }
   for (int i = 0; i < len; i++) {
      for (int j = i + 1; j < len; j++) {
         if (str[i] < str[j]) {
            count[i]++;
         }
      }
   }
   for (int i = 0; i < len; i++) {
      cout << count[i] << " ";
   }
   cout << endl;
}
int main() {
   string str = "abcdefgh";
   countCharNextLargerElementsCount(str);
   return 0;
}


Đầu ra



Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

7 6 5 4 3 2 1 0