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,
- 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.
- 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