海门市住房和城乡建设局网站,杭州哪家做外贸网站好,本wordpress慢,asp.net网站开发模板题目 给你一个以字符串表示的非负整数 num 和一个整数 k #xff0c;移除这个数中的 k 位数字#xff0c;使得剩下的数字最小。请你以字符串形式返回这个最小的数字。
示例 1 #xff1a;
输入#xff1a;num 1432219, k 3
输出#xff1a;1219移除这个数中的 k 位数字使得剩下的数字最小。请你以字符串形式返回这个最小的数字。
示例 1
输入num 1432219, k 3
输出1219
解释移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。示例 2
输入num 10200, k 1
输出200
解释移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。示例 3
输入num 10, k 2
输出0
解释从原数字移除所有的数字剩余为空就是 0 。提示
1 k num.length 105num 仅由若干位数字0 - 9组成除了 0 本身之外num 不含任何前导零 思路 贪心单调栈挺难的现场写有点麻。。。
class Solution:def removeKdigits(self, num: str, k: int) - str:# 贪心单调栈stack []for i in num:while stack and istack[-1] and k0:stack.pop()k-1stack.append(i)# import pdb;pdb.set_trace()while k0:stack.pop()k-1res .join(stack).lstrip(0)if len(res)0:res 0return res