美团笔试第二题数字字符串python

a = '22'
num_lis = [int(i) for i in a]
dict1=[0 for i in range(10)]
#num_lis.sort()
for i in num_lis:
    dict1[i] = dict1[i]+1
dict1[0]=max(dict1)+1
print int((1+min(dict1))*str(dict1.index(min(dict1))))

# 题目就不说了 90% ac


#美团##笔试题目#
全部评论
考虑00112233445566778899的情况
点赞 回复 分享
发布于 2018-03-22 23:08
a = '00112233445566778899' num_lis = [int(i) for i in a] if 0 not in set(num_lis) and len(set(num_lis))==9:     print 10 else:     dict1=[0 for i in range(10)]     #num_lis.sort()     for i in num_lis:         dict1[i] = dict1[i]+1     dict1[0]=max(dict1)+1     #print min(dict1),dict1.index(min(dict1))     print int((1+min(dict1))*str(dict1.index(min(dict1))))
点赞 回复 分享
发布于 2018-03-22 23:11
public static void main(String[] args) { Scanner in = new Scanner(System.in); String digitString = in.nextLine(); in.close(); int[] digits = new int[10]; Arrays.fill(digits, 0); for (int i = 0; i < digitString.length(); i++) { int cur = digitString.charAt(i) - '0'; digits[cur]++; } // 如果有一个数字不存在,则为该数字 for (int i = 1; i < digits.length; i++) { if (digits[i] == 0) { System.out.println(i); return; } } // 如果没有0同时其他数字都有,则结果为10 if (digits[0] == 0) { System.out.println(10); return; } // 找出同时满足"个数最少"和"值最小"的1-9的数字 int min = 1, minCount = digits[1]; for (int i = 2; i < digits.length; i++) { if (digits[i] < minCount) { min = i; minCount = digits[i]; } } // 与0的个数比较 if (digits[0] < minCount) { System.out.print(1); for (int i = 0; i <= digits[0]; i++) { System.out.print(0); } } else { for (int i = 0; i <= minCount; i++) { System.out.print(min); } } }
点赞 回复 分享
发布于 2018-03-23 09:21

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务