在C ++中按字母顺序查找子字符串数

假设我们有一个长度为n的字符串。它仅包含大写字母。我们必须找到字符以字母顺序出现的子字符串的数量。子字符串的最小大小为2。因此,如果字符串类似于:“ REFJHLMNBV”,并且子字符串计数为2,则它们分别为“ EF”和“ MN”。

因此,要解决此问题,我们将按照以下步骤操作:

  • 检查str [i] + 1是否与str [i + 1]相同,然后将结果加1,并将字符串迭代直到下一个字母顺序不正确的字符,否则继续。

示例

#include<iostream>

using namespace std;

int countSubstr(string main_str) {

   int res = 0;

   int n = main_str.size();

   for (int i = 0; i < n - 1; i++) {

      if (main_str[i] + 1 == main_str[i + 1]) {

         res++;

         while (main_str[i] + 1 == main_str[i + 1]) {

            i++;

         }

      }

   }

   return res;

}

int main() {

   string str = "REFJHLMNBV";

   cout << "Number of substrings: " << countSubstr(str);

}

输出结果

Number of substrings: 2

以上是 在C ++中按字母顺序查找子字符串数 的全部内容, 来源链接: utcz.com/z/341187.html

回到顶部