Open In App

Python | Ways to determine common prefix in set of strings

Improve
Improve
Like Article
Like
Save
Share
Report

Given a set of strings, write a Python program to determine common prefix from a set of strings. Given below are a few methods to solve the above task.
Method #1: Using Naive Approach 

Python3




# Python code to demonstrate
# to find common prefix
# from set of strings
 
# Initialising string
ini_strlist = ['akshat', 'akash', 'akshay', 'akshita']
 
# Finding common prefix using Naive Approach
res = ''
prefix = ini_strlist[0]
 
for string in ini_strlist[1:]:
    while string[:len(prefix)] != prefix and prefix:
        prefix = prefix[:len(prefix)-1]
    if not prefix:
        break
res = prefix
 
# Printing result
print("Resultant prefix", str(res))


Output: 

Resultant prefix ak

 

  
Method #2: Using itertools.takewhile and zip 

Python3




# Python code to demonstrate
# to find common prefix
# from set of strings
 
from itertools import takewhile
 
# Initialising string
ini_strlist = ['akshat', 'akash', 'akshay', 'akshita']
 
# Finding common prefix using Naive Approach
res = ''.join(c[0] for c in takewhile(lambda x:
        all(x[0] == y for y in x), zip(*ini_strlist)))
 
# Printing result
print("Resultant prefix", str(res))


Output: 

Resultant prefix ak

 

Complexity Analysis:
In both the solutions time and space complexity are the same:

Time Complexity: O(n2)
Auxiliary Space: O(n)

Method #3: Using the Python built-in function os.path.commonprefix()

This method uses the os.path.commonprefix() built-in function in the python os library to find the common prefix of a set of strings.
 

Python3




import os
 
# Initializing the list of strings
ini_strlist = ['akshat', 'akash', 'akshay', 'akshita']
 
# Using the Python built-in function os.path.commonprefix() to find the common prefix of the list of strings
prefix = os.path.commonprefix(ini_strlist)
 
# Printing the result
print("Resultant prefix", prefix)
#This code is contributed by Edula Vinay Kumar Reddy


Output

Resultant prefix ak

Time Complexity: O(n*l) where n is the number of strings in the set and l is the length of the longest string.
Auxiliary Space: O(n)

The above code import the os library and then use the os.path.commonprefix(ini_strlist) function on the set of strings. The function return the common prefix among all the string in set.



Last Updated : 11 Jan, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads