CynthiaX5129
5/14/2020 - 10:45 AM

Remove K Digits

class Solution {
public:
    string removeKdigits(string num, int k) {
        if(k == 0)
            return num;
//        if(num.size() == k)
//            return "0";
        string res = "";
        int min, skip = k;
        for(int seq = 0; seq < num.size() && num.size()-k != res.size(); seq++)
        {
//            if(skip == num.size()-seq)
//                break;
            min = 10;
            int seq1 = seq;
            for(int i=seq1; i<=seq1+skip; i++)
            {
                if(num[i]-48 < min)
                {
                    min = num[i]-48;
                    seq = i;
                }
            }
            skip -= seq - seq1;
            res += '0' + min;
            if(skip == 0)
            {
                res += num.substr(seq+1);
                break;
            }
        }
        int cnt = 0;
        for(auto r:res)
        {
            if(r == '0')
                cnt++;
            else
                break;
        }
        res = res.substr(cnt);
        if(res.empty())
            return "0";
        return res;
    }
};