- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Count substrings that starts with character X and ends with character Y in C++
We are given string str. The goal is to count the number of substrings in str that have starting character same as character X and ending character same as character Y. For example, if input is “artact” and X=’a’ and Y=’t’, the substrings will be “art”, “act”, “artact”. The count is 3.
Let us understand with examples.
Input − str=”abcccdef” X=’a’ Y=’c’
Output −Count of substrings that starts with character X and ends with Y is − 3
Explanation − Substrings will be
“abc”, “abcc”, “abccc”. Total 3.
Input − str=”tempest” X=’t’ Y=’t’
Output − Count of substrings that starts with character X and ends with Y are − 3
Explanation − Substrings will be −
“t” , “tempest” , “t”. Total 3
The approach used in the below program is as follows
We will traverse the string and increment count of X. If then Y is encountered add X count to the count of strings that start with X and end with Y.
Take string str. Calculate the length as str.size().
Function X_Y(string str, int length, char X, char Y) takes string str, characters X, Y and returns the count of substrings of str that start with X and end with Y.
Take the initial count as 0.
Take x_total as count of character X in str.
Traverse str using for loop. From i=0 to i<length.
If str[i]==X, increment count of X’s in str (x_total++).
If str[i]==Y, add x_total to count. If no X was there x_total would be 0, otherwise, Y is the end character of the substring that started from X.
Return count as the desired result.
Example
#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; }
Output
If we run the above code it will generate the following output −
Count of substrings that starts with character X and ends with character Y are: 2