【华为OD-E卷 - 找最小数 100分(python、java、c++、js、c)】
题目
给一个正整数NUM1,计算出新正整数NUM2,NUM2为NUM1中移除N位数字后的结果,需要使得NUM2的值最小
输入描述
- 输入的第一行为一个字符串,字符串由0-9字符组成,记录正整数NUM1,NUM1长度小于32。 输入的第二行为需要移除的数字的个数,小于NUM1长度
输出描述
- 输出一个数字字符串,记录最小值NUM2
用例
用例一:
输入:
2615371
4
输出:
131
python解法
- 解题思路:
- 要删除给定数字字符串中的k个字符,使得剩下的数字最小,可以采用贪心算法。具体步骤如下:
维护一个栈:用于构建最终结果,确保每次添加的数字尽可能小。
遍历每个字符:对于当前字符,若栈顶元素比它大且还有删除次数(k > 0),则弹出栈顶元素,直