【华为OD统一考试B卷 】找最小数据 python

本文介绍了一道华为OD统一考试中的题目,要求移除正整数num1中的某些数字,使得剩余数字组成的数num2最小。通过贪心算法,从高位到低位检查,一旦发现数值下降则移除前一位。输入包括num1和需要移除的数字个数。题目还强调了对字符串与数字转换函数`to_string()`和`stoi()`的熟悉。该问题与LeetCode上的移除k位数字题目相似。
摘要由CSDN通过智能技术生成

题目
给一个正整数num1,计算出新正整数num2,num2为num1中移除N位数字后的结果,需要使得num2的值最小
输入:
1.输入的第一行为一个字符串,字符串由0-9字符组成,记录正整数num1,num1长度小于32
2.输入的第二行为需要移除的数字的个数,小于num1长度
示例:
输入
2615371
4
输出
131
思路
1:贪心算法。我们只需要从高位到低位依次看过去,哪一位开始下降了,那么就移除它的前一位就好了。如果呈递增状态,则删除最后一个即可。
2:因为题目限定了需要移除的数字的个数,小于num1长度,所以我们不用考虑异常输入。
3:字符串转数字和数字转字符串的方法要熟悉。to_string() 和 stoi() 两个函数要熟记。
4:其实和leetcode上的题目非常类似,简直说可以是一样,移除k位数字

代码实现

def get_result(num1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值