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

更新于:2021年10月26日

浏览量:132

开启你的职业生涯

通过完成课程获得认证

开始学习
广告