zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【华为OD机试真题 python】 移除 K 位数字的最小值【2022 Q4 | 200分】

Python华为 数字 2022 机试 OD 真题 200
2023-09-11 14:14:52 时间

题目描述

【移除 K 位数字的最小值】

输入描述

第一行输入一个非负整数字符串,第二行输入一个整数n

输出描述

输出从该字符串中取出n个字符后剩下的字符组成的最小的数(不改变字符顺序)

输入

2615371

4

输出

131


给出一个数字组成的字符串,去除指定个数的字符,剩余的组成最小值。

这个解题思路可以是递归,按照顺序取剩余个数的字符,组成数字,依次比较获取,但是可能超时。


例如 6525441,去除 4 个字符,得到 241。

最优解是删除出现的第一个左边>右边的数,

例如第一次删除 6,因为 6>5,变成 525441;

第二次删除 5,5>2,变成 25441,第三次是 5,第四次是 4,结果为 241。