计算在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