题目描述,给定一数字字符串,最小无法表示的正整数是多少(字符串出现了几次最多就能使用几次,比如111223,1最多用3次,2最多2次,3最多1次)?

python实现如下:

def FIndMin(s):
    lis = {i:0 for i in range(0, 10)} #统计数字出现次数
    for i in s:
        lis[int(i)] += 1

    i  = m = 1
    while i <= 9:
        if lis[i] == 0: #缺数则肯定无法表示该数
            return i
        elif lis[i] < lis[m]: #顺便统计出现次数最少的数
            m = i
        i += 1
    if lis[0] == 0: #不缺数则看是否缺0
        return '10'
    else: #若都不缺则不能表示出现最少的数乘其出现次数加1的结果
        return str(m)*(lis[m]+1)

s = input('Enter number string:')
print(FIndMin(s))

测试案例:

1、

2、

3、

4、

 

posted on 2018-03-23 20:34  SHQHDMR  阅读(167)  评论(0编辑  收藏  举报