Given a string str, a character c and an integer k > 0. The task is to find the number of sub-strings that contain the character c exactly k times.
Input: str = “abada”, c = ‘a’, K = 2
All possible sub-strings are “aba”, “abad”, “bada” and “ada”.
Input: str = “55555”, c = ‘5’, k = 4
Naive approach: A simple solution is to generate all the sub-strings and check whether the count of given character is exactly k times.
Time complexity of this approach is O(n2).
Efficient approach: An efficient solution is to use sliding window technique. Find the sub-string that exactly contains the given character k times starting with character c. Count the number of characters on either side side of the sub-string. Multiply the counts to get the number of possible sub-strings. Time complexity of this approach is O(n).
Below is the implementation of the above approach:
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Count of substrings which contains a given character K times
- Count substrings with each character occurring at most k times
- Repeat substrings of the given String required number of times
- Number of substrings with count of each character as k
- Count substrings that starts with character X and ends with character Y
- Queries to print the character that occurs the maximum number of times in a given range
- Replace every character of string by character whose ASCII value is K times more than it
- Count distinct substrings that contain some characters at most k times
- Count all substrings having character K
- Maximize partitions such that no two substrings have any common character
- Print Kth character in sorted concatenated substrings of a string
- Encrypt a string by repeating i-th character i times
- Longest subsequence where every character appears at-least k times
- Print the string after the specified character has occurred given no. of times
- Longest subsequence where each character occurs at least k times
- Check if max occurring character of one string appears same no. of times in other
- Decrypt a string encrypted by repeating i-th character i times
- Lexicographically largest subsequence such that every character occurs at least k times
- Number of substrings with length divisible by the number of 1's in it
- Number of substrings of a string
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.