leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0402.cpp (823B)


0 class Solution {
1 class Solution {
2 public:
3 string removeKdigits(string num, int k) {
4 if (num.length() <= k) return "0";
5 if (k == 0) return num;
7 string res = "";
8 stack<char> s;
10 s.push(num[0]);
11 for (int i = 1; i < num.length(); ++i) {
12 while (k > 0 && !s.empty() && num[i] < s.top()) {
13 --k;
14 s.pop();
15 }
16 s.push(num[i]);
17 if (s.size() == 1 && num[i] == '0') s.pop();
18 }
20 while (k && !s.empty())
21 --k, s.pop();
23 while (!s.empty())
24 res.push_back(s.top()), s.pop();
26 reverse(res.begin(), res.end());
27 return res.size() ? res : "0";
28 }
29 };