String concatenada con caracteres poco comunes en Python

Se dan dos strings y debe modificar la 1.ª string de modo que se eliminen todos los caracteres comunes de la 2.ª string y los caracteres poco comunes de la 2.ª string se tengan que concatenar con los caracteres poco comunes de la 1.ª string. Ejemplos:

Input : S1 = "aacdb"
        S2 = "gafd"
Output : "cbgf"

Input : S1 = "abcs";
        S2 = "cxzca";
Output : "bsxz"

Este problema tiene una solución existente, consulte String concatenada con caracteres poco comunes de enlace de dos strings . Podemos resolver este problema rápidamente en Python usando Set and List Comprehension . El enfoque es simple,

  1. Convierta ambas strings en un conjunto para que solo puedan tener caracteres únicos. Ahora tome la intersección de dos conjuntos para obtener el carácter común que tienen ambas strings.
  2. Ahora separe aquellos caracteres en cada string que no sean comunes en ambos y concatene los caracteres.

Python3

# Function to concatenated string with uncommon
# characters of two strings
 
def uncommonConcat(str1, str2):
 
    # convert both strings into set
    set1 = set(str1)
    set2 = set(str2)
 
    # take intersection of two sets to get list of
    # common characters
    common = list(set1 & set2)
 
    # separate out characters in each string
    # which are not common in both strings
    result = [ch for ch in str1 if ch not in common] + [ch for ch in str2 if ch not in common]
 
    # join each character without space to get
    # final string
    print( ''.join(result) )
 
# Driver program
if __name__ == "__main__":
    str1 = 'aacdb'
    str2 = 'gafd'
    uncommonConcat(str1,str2)

Producción:

cbgf

Enfoque n.º 2: uso de la diferencia simétrica de conjunto Podemos usar la operación de diferencia simétrica de conjunto para extraer todos los caracteres poco comunes de la string y crear una string. 

Python3

# Function to concatenated string with uncommon
# characters of two strings
 
def uncommonConcat(str1, str2):
 
    # convert both strings into set
    set1 = set(str1)
    set2 = set(str2)
 
    # Performing symmetric difference operation of set
    # to pull out uncommon characters
    uncommon = list(set1 ^ set2)
 
    # join each character without space to get
    # final string
    print( ''.join(uncommon) )
 
# Driver program
if __name__ == "__main__":
    str1 = 'aacdb'
    str2 = 'gafd'
    uncommonConcat(str1,str2)

Producción:

cbfg

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 *