Programa de Python para obtener elementos mínimos para la construcción de strings

Dada una string, la tarea es escribir un programa de Python para contar los elementos mínimos necesarios para formar una string a partir de elementos de la lista.

Entrada : test_list = [“geek”, “ring”, “sfor”, “ok”, “woke”], tar_str = “working” Salida: 2 
Explicación
el trabajo se puede formar usando wake y ring.

Entrada : test_list = [“geek”, “ring”, “sfor”, “ok”, “woke”], tar_str = “workinggeek” Salida: 
3 Explicación 
: workinggeek se puede formar usando wake, geek y ring. 
 

Método: Usar issubset() + set() + combinaciones()

En esto, iteramos para obtener una lista de strings y formamos combinaciones de todos los tamaños, cada combinación se convierte en conjunto y se verifica que forme una string de destino usando issubset(), si se encuentra, se sale del ciclo y se registra el conteo.

Python3

# Python3 code to demonstrate working of
# Minimum elements for String construction
# Using issubset() + set() + combinations()
from itertools import combinations
 
# initializing list
test_list = ["geek", "ring", "sfor", "ok", "woke"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing target string
tar_str = "working"
 
res = -1
set_str = set(tar_str)
done = False
for val in range(0, len(test_list) + 1):
     
    # creating combinations
    for sub in combinations(test_list, val):
         
        # constructing sets of each combinations
        temp_set = set(ele for subl in sub for ele in subl)
         
        # checking if target string has created set as subset
        if set_str.issubset(temp_set):
            res = val
            done = True
            break
    if done:
        break
 
# printing result
print("The Minimum count elements for string : " + str(res))

Producción:

The original list is : ['geek', 'ring', 'sfor', 'ok', 'woke']
The Minimum count elements for string : 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 *