Python Program to get number of consecutive repeated substring
Last Updated :
11 Apr, 2023
Given a substring K, the task is to write a Python Program to find the repetition of K string in each consecutive occurrence of K.
Example
Input : test_str = 'geeksgeeks are geeksgeeksgeeks for all geeks', K = "geeks"
Output : [2, 3, 1]
Explanation : First consecution of 'geeks' is 2.
Input : test_str = 'geeksgeeks are geeksgeeksgeeksgeeks for all geeks', K = "geeks"
Output : [2, 4, 1]
Explanation : First consecution of 'geeks' is 2, next comes with 4 consecution of geeks.
Method 1: Using split() + count() + list comprehension
Works only for specific cases in which consecution is separated by spaces. In this, each word is splitted using split(), and each segment is evaluated for repetition count using count().
Python3
# Python3 code to demonstrate working of
# Number of repeated substrings in consecution
# Using split() + count() + list comprehension
# initializing string
test_str = 'geeksgeeks are geeksgeeksgeeks for all geeks'
# printing original string
print("The original string is : " + str(test_str))
# initializing K
K = "geeks"
# count() counts repetition
res = [sub.count(K) for sub in test_str.split(' ') if sub.count(K) != 0]
# printing result
print("String repetitions : " + str(res))
Output:
The original string is : geeksgeeks are geeksgeeksgeeks for all geeks
String repetitions : [2, 3, 1]
Time Complexity: O(n)
Space Complexity: O(n)
Method 2: Using findall() + regex + len()
In this, all the runs are computed for repetition of substring, and then division of length by substring length gives the measure of repetition number.
Python3
# Python3 code to demonstrate working of
# Number of repeated substrings in consecution
# Using findall() + regex + len()
import re
# initializing string
test_str = 'geeksgeeksaregeeksgeeksgeeksforallgeeks'
# printing original string
print("The original string is : " + str(test_str))
# initializing K
K = 'geeks'
n = len(K)
# getting regex
regx = re.compile(f'((?:{K})+)')
# getting repeats counts
# findall finding all substring joined repetitions
res = [len(occ) // n for occ in regx.findall(test_str)]
# printing result
print("String repetitions : " + str(res))
Output:
The original string is : geeksgeeks are geeksgeeksgeeks for all geeks
String repetitions : [2, 3, 1]
Time Complexity: O(n)
Space Complexity: O(n)
Approach#3: using while loop
This approach uses a while loop to find the first occurrence of the given substring in the input string. It then checks for consecutive substrings by comparing the next substring with the given substring. It continues the loop until no more occurrences are found. The count of consecutive substrings is stored in a list, and this list is returned as the output.
Algorithm
1. Initialize an empty list count_list to store the count of consecutive occurrences of the substring in the string.
2. Set the variable start to 0.
3. Loop through the string until there are no more occurrences of the substring.
4. Find the first occurrence of the substring using the find() method.
5. If there is no occurrence, break out of the loop.
6. If there is an occurrence, initialize a counter count to 1.
7. Set the variable i to the index immediately following the first occurrence of the substring.
8. While the substring is consecutive, increment the counter count and update the variable i.
9. Append the counter count to the count_list.
10. Set the variable start to the index of the last consecutive occurrence of the substring.
11. Return the count_list.
Python3
def count_consecutive_substrings(string, substring):
count_list = []
start = 0
while True:
start = string.find(substring, start) # find the first occurrence of substring
if start == -1:
break
count = 1
i = start + len(substring)
while string[i:i+len(substring)] == substring: # check for consecutive substrings
count += 1
i += len(substring)
count_list.append(count)
start = i
return count_list
string = 'geeksgeeks are geeksgeeksgeeks for all geeks'
substring='geeks'
print(count_consecutive_substrings(string, substring))
Time complexity: O(n), where n is the length of the string.
Auxiliary Space: O(1), since we are only storing the count of consecutive occurrences in a list.
Similar Reads
Python Tutorial | Learn Python Programming Language Python Tutorial â Python is one of the most popular programming languages. Itâs simple to use, packed with features and supported by a wide range of libraries and frameworks. Its clean syntax makes it beginner-friendly.Python is:A high-level language, used in web development, data science, automatio
10 min read
Python Interview Questions and Answers Python is the most used language in top companies such as Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify and many more because of its simplicity and powerful libraries. To crack their Online Assessment and Interview Rounds as a Python developer, we need to master important Pyth
15+ min read
Python OOPs Concepts Object Oriented Programming is a fundamental concept in Python, empowering developers to build modular, maintainable, and scalable applications. By understanding the core OOP principles (classes, objects, inheritance, encapsulation, polymorphism, and abstraction), programmers can leverage the full p
11 min read
Python Projects - Beginner to Advanced Python is one of the most popular programming languages due to its simplicity, versatility, and supportive community. Whether youâre a beginner eager to learn the basics or an experienced programmer looking to challenge your skills, there are countless Python projects to help you grow.Hereâs a list
10 min read
Python Exercise with Practice Questions and Solutions Python Exercise for Beginner: Practice makes perfect in everything, and this is especially true when learning Python. If you're a beginner, regularly practicing Python exercises will build your confidence and sharpen your skills. To help you improve, try these Python exercises with solutions to test
9 min read
Python Programs Practice with Python program examples is always a good choice to scale up your logical understanding and programming skills and this article will provide you with the best sets of Python code examples.The below Python section contains a wide collection of Python programming examples. These Python co
11 min read
Python Data Types Python Data types are the classification or categorization of data items. It represents the kind of value that tells what operations can be performed on a particular data. Since everything is an object in Python programming, Python data types are classes and variables are instances (objects) of thes
9 min read
Enumerate() in Python enumerate() function adds a counter to each item in a list or other iterable. It turns the iterable into something we can loop through, where each item comes with its number (starting from 0 by default). We can also turn it into a list of (number, item) pairs using list().Let's look at a simple exam
3 min read
Python Introduction Python was created by Guido van Rossum in 1991 and further developed by the Python Software Foundation. It was designed with focus on code readability and its syntax allows us to express concepts in fewer lines of code.Key Features of PythonPythonâs simple and readable syntax makes it beginner-frien
3 min read
Input and Output in Python Understanding input and output operations is fundamental to Python programming. With the print() function, we can display output in various formats, while the input() function enables interaction with users by gathering input during program execution. Taking input in PythonPython input() function is
8 min read