Programa de Python para comprobar que todas las strings son mutuamente disjuntas

Dada una lista de strings, nuestra tarea es escribir un programa en Python para verificar que todas las strings estén separadas entre sí.

Ejemplo:

Entrada: lista_prueba = [“gfg”, “es”, “apuesta”]

Salida: Verdadero

Explicación: ningún carácter de string se repite en otras strings. 

Entrada: test_list = [“gfg”, “is”, “best”]

Salida: Falso

Explicación: s se repite tanto en «es» como en «mejor», por lo tanto, falso. 

Método n. ° 1: usar cualquier() + intersection() + enumerar()

En esto, realizamos la tarea de obtener elementos comunes usando la intersection(), y la intersección se realiza entre todas las combinaciones de strings entre sí usando enumerate() y any() se usa para probar si alguna string tiene algún carácter presente en otra. cuerda. 

Python3

# Python3 code to demonstrate working of
# Test if all strings are mutually disjoint
# Using any() + intersection() + enumerate()
 
# initializing list
test_list = ["gfg", "is", "bet"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# performing intersection of each string with every other
res = not any(set(list(sub1)).intersection(set(list(sub2)))
              for idx, sub1 in enumerate(test_list)
              for sub2 in test_list[idx + 1:])
 
# printing result
print("Are strings mutually disjoint? : " + str(res))

Producción:

The original list is : ['gfg', 'is', 'bet']
Are strings mutually disjoint? : True

Complejidad temporal: O(n 2 )

Espacio Auxiliar: O(n)

Método #2: Usar join() + len() + set()

Este problema se puede resolver haciendo coincidir las longitudes de las strings concatenadas y verificando la igualdad de las longitudes de las strings y el conjunto convertido. Falla en caso de que una string similar contenga elementos duplicados.

Python3

# Python3 code to demonstrate working of
# Test if all strings are mutually disjoint
# Using
 
# initializing list
test_list = ["gfg", "is", "bet"]
              
# printing original list
print("The original list is : " + str(test_list))
 
# performing concatenation and checking
# for lengths
concats = ''.join(test_list)
res = len(concats) == len(set(concats))
 
# printing result
print("Are strings mutually disjoint? : " + str(res))

Producción:

The original list is : ['gfg', 'is', 'bet']
Are strings mutually disjoint? : False

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

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 *