题目描述,给定一数字字符串,最小无法表示的正整数是多少(字符串出现了几次最多就能使用几次,比如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、