Given two positive integers A and B, the task is to print the distinct digits in descending order, which are not common in the two numbers.
Examples:
Input: A = 378212, B = 78124590
Output: 9 5 4 3 0
Explanation: All distinct digits present in the two numbers are {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. The digits {1, 2, 6, 7} are common in both numbers.Input: A = 100, B = 273
Output: 7 3 2 1 0
Explanation: All distinct digits present in the two numbers are {0, 1, 2, 3, 7}. The digits {0, 1, 2, 3, 7} are common in both numbers.
Approach: The problem can be solved using sets, and lists in python. Follow the steps below to solve the problem:
- Convert both integers into strings.
- Now, store the equivalent integer values of the characters of the strings A and B in the lists lis1 and lis2, using map() function.
- Convert both the lists lis1 and lis2 to set lis1 and lis2 using the set() method.
- Now, find the uncommon digits of both sets lis1 and lis2 using the function symmetric_difference() and store it in a set, say lis.
- After completing the above steps, convert the set lis into list lis using list() method.
- Finally, Sort the list in descending order and print the list lis as the answer.
Below is the implementation of the above approach:
Python3
# Python implementation# of the above approachÂ
# Function to print uncommon digits# of two numbers in descending orderdef disticntUncommonDigits(A, B):Â
    # Stores digits of A as string    A = str(A)Â
    # Stores digits of B as string    B = str(B)Â
    # Stores the characters    # of A in a integer list    lis1 = list(map(int, A))         # Stores the characters    # of B in a integer list    lis2 = list(map(int, B))Â
    # Converts lis1 to set    lis1 = set(lis1)Â
    # Converts lis2 to set    lis2 = set(lis2)Â
    # Stores the uncommon digits present    # in the sets lis1 and lis2    lis = lis1.symmetric_difference(lis2)Â
    # Converts lis to list    lis = list(lis)Â
    # Sort the list in descending order    lis.sort(reverse = True)Â
    # Print the list lis    for i in lis:        print(i, end =" ")Â
# Driver CodeÂ
Â
# InputA = 378212B = 78124590Â
disticntUncommonDigits(A, B) |
9 5 4 3 0
Time Complexity: O(log10(A) + log10(B))
Auxiliary Space: O(log10(A) + log10(B))
Method #2:Using Operator.countOf() method
Python3
# Python implementation# of the above approachimport operator as op# Function to print uncommon digits# of two numbers in descending orderÂ
Â
def disticntUncommonDigits(A, B):Â
    # Stores digits of A as string    A = str(A)Â
    # Stores digits of B as string    B = str(B)Â
    # Stores the characters    # of A in a integer list    lis1 = list(map(int, A))Â
    # Stores the characters    # of B in a integer list    lis2 = list(map(int, B))    res = []    for i in lis1:        if op.countOf(lis2, i) == 0:            res.append(i)    for i in lis2:        if op.countOf(lis1, i) == 0:            res.append(i)    # Sort the list in descending order    res.sort(reverse=True)Â
    # Print the list lis    for i in res:        print(i, end=" ")Â
# Driver CodeÂ
Â
# InputA = 378212B = 78124590Â
disticntUncommonDigits(A, B) |
9 5 4 3 0
Time Complexity: O(log10(A) + log10(B))
Auxiliary Space: O(log10(A) + log10(B))
Approach#3: Using set() and difference() and sorted and union
Convert both numbers A and B to sets of digits. Find uncommon digits in both sets by taking the set difference and union of the sets. Convert the resulting set of uncommon digits to a list and sort it in descending order. Print the list of uncommon digits as a string.
Algorithm
1. Initialize A and B with given values.
2. Convert A and B to sets of digits.
3. Find uncommon digits using set difference and union.
4. Convert resulting set to a list and sort it in descending order.
5. Print the list of uncommon digits as a string.
Python3
A = 378212B = 78124590Â
# find unique digits in each numberdigits_A = set(str(A))digits_B = set(str(B))Â
# find uncommon digits using set differenceuncommon_digits = digits_A.difference(digits_B).union(digits_B.difference(digits_A))Â
# convert set to list and sort in descending orderuncommon_digits = sorted(list(uncommon_digits), reverse=True)Â
# print the list of uncommon digitsprint(' '.join(uncommon_digits)) |
9 5 4 3 0
Time Complexity: O(m+n), where m and n are the number of digits in A and B, respectively. This is because the set() function and set difference and union operations take O(m) and O(n) time, respectively.
Space Complexity: O(m+n), where m and n are the number of digits in A and B, respectively. This is because we are storing the digits of A and B in sets, which take up O(m) and O(n) space, respectively. The resulting set of uncommon digits and the list of uncommon digits also take up O(m+n) space.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Find More to that Topic: geeksforgeeks.org/python-program-to-print-all-distinct-uncommon-digits-present-in-two-given-numbers/ […]