Dada una string y una substring, la tarea es obtener el recuento de substrings superpuestas de la string dada.
Tenga en cuenta que en Python, la count()
función devuelve el número de substrings en una string dada, pero no da resultados correctos cuando dos ocurrencias de la substring se superponen. Considere este ejemplo:
string = "GeeksforGeeksforGeeksforGeeks" print(string.count("GeeksforGeeks"))
Producción:
2
El resultado que obtuvimos aquí es 2, pero el resultado esperado es 3 ya que también queríamos contar la ocurrencia de substrings superpuestas.
Para resolver este problema, podemos usar find()
la función en Python. Devuelve la posición de inicio de la primera aparición de substring en la string dada, luego incrementamos esta posición en 1 y continuamos la búsqueda desde esa posición hasta el final de la string.
A continuación se muestra la implementación:
def CountOccurrences(string, substring): # Initialize count and start to 0 count = 0 start = 0 # Search through the string till # we reach the end of it while start < len(string): # Check if a substring is present from # 'start' position till the end pos = string.find(substring, start) if pos != -1: # If a substring is present, move 'start' to # the next position from start of the substring start = pos + 1 # Increment the count count += 1 else: # If no further substring is present break # return the value of count return count # Driver Code string = "GeeksforGeeksforGeeksforGeeks" print(CountOccurrences(string, "GeeksforGeeks"))
3
Publicación traducida automáticamente
Artículo escrito por BhavyadeepPurswani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA