查找能被整除的最大整数
2026 华为OD机试真题 5月13日华为OD上机新系统考试真题 100 分题型
点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解
题目描述
给定一个字符串和一个正整数,字符串由大小写字母和数字组成,要求从字符串中找出最大能被给定正整数整除的数。
输入描述
- string inputStr // 第一个字符串
- int inputDivisor // 第二个正整数
输出描述
result // 返回结果值
注:
-
给定的 inputStr 字符串长度为 1~ 10000,给定的 inputDivisor 值的范围为 1~ 99;
-
从 inputStr 中解析的整数不可分割,支持前缀为 0 整数串,数值范围为 0~ 999,例如:
(1) “29ab03”、“29ab003”、“29ab0003”、“29ab00003”、"29ab000003"等 3 前面有前缀 0 的数字串,解析出整数为 29 和 3;
(2) “0abc123”、“00abc123”、“000abc123”、“0000abc123”、“00000abc123” 等含一个或多个 0 的数字串,解析出整数为 0 和 123。
-
如果输入都合法且能找到能被整除的最大数,则输出该最大数; 其他情况输出 −1,例如: (1) 输入数据包含非法字符、值超出范围、长度超出范围等; (2) 没有找到能被 inputDivisor 整除的数。
补充说明
- 程序运行内存要小于256MB;
- 程序运行耗时不能超过 1 秒。
示例1
输入
abc123EFEDG34aadD78er,2
输出
78
说明
34 和 78 都能被 2 整除,78 为能被整除的最大数。
示例2
输入
wrwqr1.0we+de-,3
输出
-1
说明
参数 1 字符串中包含非法字符 .+−
示例3
输入
ewr23hk064ASW12VBG,4
输出
64
说明
获取的整数列表为 23、64、12,能被 4 整除的最大数为 64
示例4
输入
ewr23hk064ASW12VBG,5
输出
-1
说明
获取的整数列表为 23、64、12,都不能被5整除
示例5
输入
wrq45ret0eww237ere,7
</
订阅专栏 解锁全文

557

被折叠的 条评论
为什么被折叠?



