数字字符

数字字符

链接:

https://www.nowcoder.com/questionTerminal/024c3b99edc34b84999c5830f748a841

来源:牛客网

在十进制表示中,任意一个正整数都可以用字符’0’-‘9’表示出来。但是当’0’-‘9’这些字符每种字符的数量有限时,可能有些正整数就无法表示出来了。比如你有两个‘1’,一个‘2’,那么你能表示出11,12,121等等,但是无法表示出10,122,200等数。 现在你手上拥有一些字符,它们都是’0’-‘9’的字符。你可以选出其中一些字符然后将它们组合成一个数字,那么你所无法组成的最小的正整数是多少?

输入描述:
第一行包含一个由字符’0’-‘9’组成的字符串,表示你可以使用的字符。
1 ≤字符串长度≤ 1000
输出描述:
输出你所无法组成的最小正整数

示例1

输入

55

输出

1

示例2

输入

123456789

输出

10

python实践

#!/usr/bin/env python
# _*_ coding:utf-8 _*_

"""
在十进制表示中,任意一个正整数都可以用字符’0’-‘9’表示出来。但是当’0’-‘9’
这些字符每种字符的数量有限时,可能有些正整数就无法表示出来了。比如你有两个‘1’,
一个‘2’,那么你能表示出11,12,121等等,但是无法表示出10,122,200等数。 
现在你手上拥有一些字符,它们都是’0’-‘9’的字符。你可以选出其中一些字符然后
将它们组合成一个数字,那么你所无法组成的最小的正整数是多少?
"""
def minInt(num):
    num_list = list(str(num))
    # print(num_list.sort())
    num_list.sort()
    # print(num_list)
    # 初始化词典,value值为0
    d = {}
    for i in range(0, 10):
        d[i] = 0

    for e in num_list:
        d[int(e)] += 1
    l = []
    for j in range(0,10):
        if d[j] == 0:
            l.append(j)
    # print(l)
    if len(l) == 1:
        if l[0] == 0:
            print(10)
        else:
            print(l[0])
    else:
        if l[0] == 0:
            print(l[1])
        else:
            print(l[0])

if __name__ == '__main__':
    # num = 123456789
    num = int(input())
    minInt(num)

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦