如何返回正整数中的唯一数字位数

时间:2018-01-16 05:52:26

标签: python

以下是我目前的情况:

unique = 0

while n > 0:    
    last, n = n % 10, n // 10    
        if not has_digit(n, last):    
            unique += 1    
    return unique

我正在尝试为整数中的每个唯一数字设置它,它输出有多少唯一数字。

例如:

unique_digits(123456) = 6    
unique_digits(112222) = 2

>>> unique_digits(8675309) # All are unique
    7
    >>> unique_digits(1313131) # 1 and 3
    2
    >>> unique_digits(13173131) # 1, 3, and 7
    3
    >>> unique_digits(10000) # 0 and 1
    2
    >>> unique_digits(101) # 0 and 1
    2
    >>> unique_digits(10) # 0 and 1
    2
    """

2 个答案:

答案 0 :(得分:5)

首先从中创建一个字符串,然后通过创建set和来获取唯一值 然后用len计算。

len(set(str(122226)))
# 3

答案 1 :(得分:0)

最简单的方法是将数字转换为string并将其传递给set。这只会保留唯一的数字。

>>> len( set(str(num)) )

编辑:

作为一项功能,

def unique_digits(num): 
    return len( set(str(num)) )

#driver代码:

>>> print(unique_digits(123456))
6
>>> print(unique_digits(112222))
2