Skip to content
Related Articles
Open in App
Not now

Related Articles

Concatenated string with uncommon characters in Python

Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 20 Dec, 2022
Improve Article
Save Article

Two strings are given and you have to modify the 1st string such that all the common characters of the 2nd string have to be removed and the uncommon characters of the 2nd string have to be concatenated with the uncommon characters of the 1st string. 

Examples:

Input : S1 = “aacdb”, S2 = “gafd”
Output : “cbgf”
Input : S1 = “abcs”;, S2 = “cxzca”;
Output : “bsxz”

This problem has an existing solution please refer Concatenated string with uncommon characters of two strings link. We can solve this problem quickly in Python using Set and List Comprehension. The approach is simple,

  1. Convert both strings into a set so that they could have only unique characters. Now take the intersection of two sets to get the common character both strings have.
  2. Now separate out those characters in each string that are not common in both of them and concatenate the characters.

Implementation:

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)

Output

cbgf

Approach#2: Using set symmetric difference 

We can use the symmetric difference operation of set to pull out all the uncommon character from both the string and make a string. 

Implementation:

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)

Output

fbgc

Approach #3: Using Counter() function

Python3




# Function to concatenated string with uncommon
# characters of two strings
from collections import Counter
 
 
def uncommonConcat(str1, str2):
 
    result = []
    frequency_str1 = Counter(str1)
    frequency_str2 = Counter(str2)
    for key in frequency_str1:
        if key not in frequency_str2:
            result.append(key)
            for key in frequency_str2:
                if key not in frequency_str1:
                    result.append(key)
 
    # Sorting the result
    result.sort()
 
    print(''.join(set(result)))
 
 
# Driver program
if __name__ == "__main__":
    str1 = 'aacdb'
    str2 = 'gafd'
    uncommonConcat(str1, str2)

Output

cfbg

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!