用 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 并返回 str 的以 X 开头以 Y 结尾的子字符串的数量。
将初始计数设置为 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 开始的子字符串的结束字符。
返回 count 作为所需结果。
示例
#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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP