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;
}
};