 Open in App
Not now

# Concatenated string with uncommon characters in Python

• Difficulty Level : Medium
• Last Updated : 20 Dec, 2022

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