华为od机试题目分享
2022Q2
运气比较好,感觉三道题都不太难
100% 100% 95%
第三题用的背包,可能有点边界条件没判定到,最后没有再调试了
1. 给定一个整数num和一个数字k,求解一个连续递增数列,使得长度为k的数列之和为num,存在该数列时输出数列,不存在时输出-1
例如:
输入 525 6
输出 85 86 87 88 89 90
输入 1 3
输出 -1
2. 给一个只包含大写字母的字符串,(字符串长度大于0),和一个数字k,
记录连续的相同字符的出现次数,并按出现次数排序,输出排第k位的字母的出现次数,不存在时输出-1(如果一个字母出现多次则只保留最高次数的记录,如果几个字母出现次数相同则按原字符串的出现顺序排序)
输入 AAAHHHHBHHHDDCCC
3
输出 3
分析:最终记录结果应为 { H:4次,A:3次,H:3次(忽略),C:3次,D:2次,B:1次},排第三位的应该是C:3次,因此输出3
3. 给一个纯数字字符串,和一个数字k,求该字符串删掉k个数字后组成数字的最小值
输入:2615371
4
输出:131
分析:令‘2635131’整个字符串中删掉四个数,保留的结果最小,即删掉2,6,5,7后剩余131是最小的