Python: posible recuento de substrings de String

Dada la string de destino y la substring del argumento, cuente cuántas substrings se pueden construir usando caracteres de string, no se permiten repeticiones.

Entrada : test_str = «geksefokesgergeeks», arg_str = «geeks» 
Salida : 3 
Explicación : «geeks» se pueden crear 3 veces usando caracteres de string.

Entrada : test_str = “gefroksefokesgergeeks”, arg_str = “for” 
Salida : 2 
Explicación : “for” se puede crear 2 veces usando caracteres de string. 
 

Método n. ° 1: usar count() + min() + set()

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, dividimos el conteo de cada elemento de la string arg con el conteo del carácter de la string de destino, y usando min(), se devuelve el elemento más bajo. La lógica detrás es que cualquier elemento por encima de min significaría que el elemento mínimo faltaría a partir de esa string.

Python3

# Python3 code to demonstrate working of
# Possible Substring count from String
# Using min() + list comprehension + count()
 
# initializing string
test_str = "gekseforgeeks"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing arg string
arg_str = "geeks"
 
# using min and count to get minimum possible
# occurrence of character
res = min(test_str.count(char) // arg_str.count(char) for char in set(arg_str))
 
# printing result
print("Possible substrings count : " + str(res))
Producción

The original string is : gekseforgeeks
Possible substrings count : 2

Método #2: Usando Counter() + comprensión de lista

Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de contar usando Counter() y la comprensión de listas se usa para vincular el resultado, usando min() realizando una tarea similar al método anterior.

Python3

# Python3 code to demonstrate working of
# Possible Substring count from String
# Using Counter() + list comprehension
from collections import Counter
 
# initializing string
test_str = "gekseforgeeks"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing arg string
arg_str = "geeks"
 
# using Counter to get character frequencies
temp1 = Counter(test_str)
temp2 = Counter(arg_str)
res = min(temp1[char] // temp2[char] for char in temp2.keys())
 
# printing result
print("Possible substrings count : " + str(res))
Producción

The original string is : gekseforgeeks
Possible substrings count : 2

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *