Epic OA 面试题解析:Broken Labeler 数字构造与贪心思路

22次阅读
没有评论

You need to label a large number of files from 1 to N, but one number key on your labeler is broken. Write a program that prompts the user for N and the broken number key, then prints the highest possible file number the user can print on the labeler.

For example, if the user enters N = 56781232 and the broken number key is 2, then the highest possible file number is 56781199.

这道题的关键是从不超过 N 的最大数字开始,向下寻找第一个不包含坏掉数字键的数。最直接的方法是从 N 递减检查每个候选数字是否含有 broken digit;检查时不断取模 / 除 10 即可判断某一位是否等于坏键。由于题目目标是“最大可能文件编号”,一旦找到第一个合法数字就可以直接返回。这个题考察的是数字位处理与简单贪心遍历,适合用字符串或整数拆位来实现。

正文完
 0