Conjunto de python | Pares de cuerdas completas en dos juegos

Se dice que dos strings están completas si, al concatenarlas, contienen los 26 alfabetos ingleses. Por ejemplo, “abcdefghi” y “jklmnopqrstuvwxyz” están completos ya que juntos tienen todos los caracteres de la ‘a’ a la ‘z’.
Nos dan dos conjuntos de tamaños n y m respectivamente y necesitamos encontrar el número de pares que están completos al concatenar cada string del conjunto 1 con cada string del conjunto 2.

Ejemplos:

Input : set1[] = {"abcdefgh", "geeksforgeeks",
                 "lmnopqrst", "abc"}
        set2[] = {"ijklmnopqrstuvwxyz", 
                 "abcdefghijklmnopqrstuvwxyz", 
                 "defghijklmnopqrstuvwxyz"} 
Output : 7
The total complete pairs that are forming are:
"abcdefghijklmnopqrstuvwxyz"
"abcdefghabcdefghijklmnopqrstuvwxyz"
"abcdefghdefghijklmnopqrstuvwxyz"
"geeksforgeeksabcdefghijklmnopqrstuvwxyz"
"lmnopqrstabcdefghijklmnopqrstuvwxyz"
"abcabcdefghijklmnopqrstuvwxyz"
"abcdefghijklmnopqrstuvwxyz"

Tenemos una solución existente para este problema, consulte Pares de strings completas en dos conjuntos de enlaces de strings. Podemos resolver este problema rápidamente en python usando Establecer estructura de datos . El enfoque es muy simple,

  1. Considere todos los pares de strings, concatene uno por uno y conviértalo en un conjunto.
  2. Ahora, uno por uno, agregue todos los alfabetos en una string concatenada en el conjunto. Dado que el conjunto contiene valores únicos, si la longitud del conjunto es igual a 26, significa que el conjunto contiene los 26 alfabetos ingleses.
# Function to find pairs of complete strings
# in two sets of strings
  
def completePair(set1,set2):
      
    # consider all pairs of string from
    # set1 and set2
    count = 0
    for str1 in set1:
        for str2 in set2:
            result = str1 + str2
  
            # push all alphabets of concatenated 
            # string into temporary set
            tmpSet = set([ch for ch in result if (ord(ch)>=ord('a') and ord(ch)<=ord('z'))])
            if len(tmpSet)==26:
                count = count + 1
    print (count)
  
# Driver program
if __name__ == "__main__":
    set1 = ['abcdefgh', 'geeksforgeeks','lmnopqrst', 'abc']
    set2 = ['ijklmnopqrstuvwxyz', 'abcdefghijklmnopqrstuvwxyz','defghijklmnopqrstuvwxyz']
    completePair(set1,set2)

Producción:

7

Publicación traducida automáticamente

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