
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- 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 Occurrences of a Character in a Repeated String in C++
Given a string str, a character and a positive integer N. The string str is repeated indefinitely. The goal is to find the count of occurrences of character in str in first N characters of repetitions.
If str is “abac”, character is ch=‘b’ and N is 10.
In first 10 characters of “abacabacabacabac…….” b occurs twice.
Note − Take str and character ch within the same case.
Let us understand with examples.
For Example
Input
str = "TPTTTT" ch = 'T' n = 12
Output
Count of occurrences of a character in a repeated string are: 10
Explanation
The number of ‘T’ in str is 5. Length of str is 6. For n=12, str will be fully repeated twice, so count of Ts is 6*2=12.
Input
str = "sets" ch = 's' n = 15
Output
Count of occurrences of a character in a repeated string are: 7
Explanation
The number of ‘s’ in str is 2. Length of str is 4. For n=15, str will be fully repeated 3 times (first 12 characters), so count of s in those will be 3*2=6. For the remaining 3 characters (set) s occurs once. So count is 6+1=7
Approach used in the below program is as follows −
In this approach we will first count the number of occurrences of character ch in str. Then we will divide the length of str with N. We will get a number of full repetitions of str within N characters by (N / length of str). So, the number of occurrences of ch in those repetitions will be simple multiplication. For remaining characters (N % length of str) count ch in str again and add to previous count.
Take a string str.
Take n as integer, ch as character and length of str as integer.
Function occurrences_char(string str, int length, int n, char ch) takes str, ch, n and length of str and returns the count of ch in first n characters in repeated string str.
Take the initial count as 0.
Using for loop count occurrences of ch in str. For each str[i]==ch, increment count.
No of repetitions of str in n will be occ= n / length.
No. of occurrences of ch in these repetitions will be count * occ.
For remaining n % length characters of str check if str[i]==ch, if yes increment count.
Return count as result.
Example
#include <bits/stdc++.h> using namespace std; int occurrences_char(string str, int length, int n, char ch){ int count = 0; for (int i = 0; i < length; i++){ if (str[i] == ch){ count++; } } int occ = n / length; count = count * occ; for (int i = 0; i < n % length; i++){ if (str[i] == ch){ count++; } } return count; } int main(){ string str = "TPTTTT"; char ch = 'T'; int n = 12; int length = str.size(); cout<<"Count of occurrences of a character in a repeated string are: "<<occurrences_char(str, length, n, ch); return 0; }
Output
If we run the above code it will generate the following output −
Count of occurrences of a character in a repeated string are − 10