现在你手上拥有一些字符,它们都是 ’0’-‘9’ 的字符。你可以选出其中一些字符然后将它们组合成一个数字,那么你所无法组成的最小的正整数是多少?
数据范围:字符串长度满足
,字符串中只包含 '0'-'9' 字符。
第一行包含一个字符串,表示你可以使用的字符。
输出你所无法组成的最小正整数
55
1
123456789
10
#!/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)
nums = input()
num_count = [0,0,0,0,0,0,0,0,0,0]
for n in nums:
d = (int)(n)
if d==0:
num_count[9] += 1
else:
num_count[d-1] += 1
min_digit = num_count[0]
min_di = 0
for i in range(1,10):
if num_count[i] < min_digit:
min_digit = num_count[i]
min_di = i
if min_di == 9:
print('1'+'0'*(min_digit+1))
else:
print(str(min_di+1)*(min_digit+1))