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