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