📌  相关文章
📜  Python程序打印两个给定数字中存在的所有不同的不常见数字

📅  最后修改于: 2021-04-18 02:20:39             🧑  作者: Mango

给定两个正整数AB ,任务是按降序打印不同的数字,这在两个数字中并不常见。

例子:

方法:可以使用set和Python的列表解决问题。请按照以下步骤解决问题:

  • 将两个整数都转换为字符串。
  • 现在,使用map()函数将字符串AB的字符的等效整数值存储在列表lis1lis2中
  • 都转换列表LIS1LIS2到集LIS1LIS2使用set()方法。
  • 现在,使用函数symmetric_difference()找到两个集合lis1lis2的不常见数字,并将其存储在集合中,例如lis
  • 完成上述步骤后,使用list()方法将set lis转换为list lis
  • 最后,按降序对列表进行排序,并打印列表lis作为答案。

下面是上述方法的实现:

Python3
# Python implementation
# of the above approach
  
# 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))
  
    # 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
  
  
# Input
A = 378212
B = 78124590
  
disticntUncommonDigits(A, B)


输出:
9 5 4 3 0

时间复杂度: O(log 10 (A)+ log 10 (B))
辅助空间: O(log 10 (A)+ log 10 (B))