[栈] leetcode 402 Remove K Digits

Posted fish1996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[栈] leetcode 402 Remove K Digits相关的知识,希望对你有一定的参考价值。

problem:https://leetcode.com/problems/remove-k-digits

         单调栈。维护一个递增的栈,每pop一次意味着移除了一个元素,k--。减为0时不再移除。前导0处理起来很麻烦,很容易WA。

class Solution 
public:
    string removeKdigits(string num, int k) 
        string res;
        for(int i = 0;i < num.size(); i++)
        
            if(res.size() && res.front() == 0) res = res.substr(1);
            while(k && !res.empty() && num[i] < res.back())
            
                res.pop_back();
                k--;
            
            
            res.push_back(num[i]);
        
        while(k && res.size())
        
            k--;
            res.pop_back();
        
        return res.empty() ? "0" : res;
    
;

 

以上是关于[栈] leetcode 402 Remove K Digits的主要内容,如果未能解决你的问题,请参考以下文章

leetcode [402]Remove K Digits

LeetCode 402: Remove K Digits

每日一题- Leetcode 402. Remove K Digits

每日一题- Leetcode 402. Remove K Digits

leetcode中等402移掉k位数字

402. Remove K Digits