Dada una string y una substring, escriba un programa Python para encontrar la enésima aparición de la string. Analicemos algunos métodos para resolver la tarea dada.
Método #1: Usar re
Python3
# Python code to demonstrate # to find nth occurrence of substring import re # Initialising values ini_str = "abababababab" substr = "ab" occurrence = 4 # Finding nth occurrence of substring inilist = [m.start() for m in re.finditer(r"ab", ini_str)] if len(inilist)>= 4: # Printing result print ("Nth occurrence of substring at", inilist[occurrence-1]) else: print ("No {} occurrence of substring lies in given string".format(occurrence))
Método #2: Usando el método find()
Python3
# Python code to demonstrate # to find nth occurrence of substring # Initialising values ini_str = "abababababab" sub_str = "ab" occurrence = 4 # Finding nth occurrence of substring val = -1 for i in range(0, occurrence): val = ini_str.find(sub_str, val + 1) # Printing nth occurrence print ("Nth occurrence is at", val)
Método n.º 3: usar la función «startwith()» y la comprensión de listas
Python3
# Python code to demonstrate # to find nth occurrence of substring # Initialising values ini_str = "abababababab" substr = "ab" occurrence = 4 # Finding nth occurrence of substring inilist = [i for i in range(0, len(ini_str)) if ini_str[i:].startswith(substr)] if len(inilist)>= 4: # Printing result print ("Nth occurrence of substring at", inilist[occurrence-1]) else: print ("No {} occurrence of substring lies in given string".format(occurrence))
La Complejidad de Tiempo y Espacio es la misma para todos los métodos:
Complejidad de tiempo: O(n)
Complejidad espacial: O(n) (longitud de la string)
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