Python | Formas de determinar el prefijo común en un conjunto de strings

Dado un conjunto de strings, escriba un programa en Python para determinar el prefijo común de un conjunto de strings. A continuación se presentan algunos métodos para resolver la tarea anterior.
Método #1: Usar un enfoque ingenuo 
 

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))
Producción: 

Resultant prefix ak

 

  
Método #2: Usar itertools.takewhile y 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))
Producción: 

Resultant prefix ak

 

Análisis de Complejidad:

Tanto en la solución el tiempo como en el espacio la complejidad es la misma:

Complejidad temporal: O(n 2 )

Complejidad espacial: O(n)

Publicación traducida automáticamente

Artículo escrito por garg_ak0109 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *