计算在C ++中以字符X开头并以字符Y结尾的子字符串

给我们字符串str。目标是计算str中具有与字符X相同的起始字符和与字符Y相同的结束字符的子字符串的数量。例如,如果输入为“ artact”且X ='a'和Y ='t',则子字符串将是“ art”,“ act”,“ artact”。计数是3。

让我们通过示例来理解。

输入-str =” abcccdef” X ='a'Y ='c'

输出-以字符X开头并以Y结尾的子串的计数为-3

说明-子字符串将是

“abc”, “abcc”, “abccc”. Total 3.

输入-str =“ tempest” X ='t'Y ='t'

输出-以字符X开头并以Y结尾的子串的计数为-3

说明-子字符串将是-

“t” , “tempest” , “t”. Total 3

以下程序中使用的方法如下

我们将遍历X的字符串和增量计数。如果遇到Y,则将X计数添加到以X开头和Y结束的字符串计数中。

  • 取字符串str。计算长度为str.size()。

  • 函数X_Y(string str,int length,char X,char Y)接受字符串str,字符X,Y,并返回以X开头和Y结束的str子字符串的计数。

  • 将初始计数设为0。

  • 将x_total作为str中字符X的计数。

  • 使用for循环遍历str。从i = 0到i <length。

  • 如果str [i] == X,则在str中增加X的计数(x_total ++)。

  • 如果str [i] == Y,则添加x_total进行计数。如果没有X,则x_total将为0,否则,Y是从X开始的子字符串的结束字符。

  • 返回计数作为期望的结果。

示例

#include <bits/stdc++.h>

using namespace std;

int X_Y(string str, int length, char X, char Y){

   int count = 0;

   int x_total = 0;

   for (int i = 0; i < length; i++){

      if(str[i] == X){

         x_total++;

      }

      if (str[i] == Y){

         count = count + x_total;

      }

   }

   return count;

}

int main(){

   string str = "defaabbcchhkl";

   int length = str.size();

   char X = 'd';

   char Y = 'a';

   cout<<"Count of substrings that starts with character X and ends with character Y are: "<<X_Y(str, length, X, Y);

   return 0;

}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Count of substrings that starts with character X and ends with character Y are: 2

以上是 计算在C ++中以字符X开头并以字符Y结尾的子字符串 的全部内容, 来源链接: utcz.com/z/330816.html

回到顶部