C++字符串中右侧较大元素的数量
给定一个字符串,我们需要计算每个字符右侧较大元素的数量。让我们来看一个例子。
输入
string = "abc"
输出
2 1 0
a 的右侧有 2 个大于 a 的元素。
b 的右侧有 1 个大于 b 的元素。
c 的右侧有 0 个大于 c 的元素。
算法
初始化字符串。
初始化一个数组来跟踪计数。
编写两个循环来迭代字符串。
一次取一个字符,并将其与它后面的所有字符进行比较。
如果当前元素小于下一个元素,则递增计数数组中相应字符的计数。
打印所有字符的计数。
实现
以下是上述算法在 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; }Output
If you run the above code, then you will get the following result.
7 6 5 4 3 2 1 0
广告